Add documentation for manual installation without script

I want to install pi-hole without using your basic-install.sh script,
so I can really understand what will happen to my system,
can place the configuration files where I can find them later,
and can prevent pi-hole is interfering with other applications
already running on my system (bind9 for my own domain / nginx webserver).
Instead of deciding between bind9 and pi-hole,
I want my server to provide a pi-hole for my vpn clients at port 22
while requests from the internet should be answered by bind9 also at port 22.

So I will look at https://docs.pi-hole.net/main/basic-install/ to read something about a “manual installation”, which is not a recommended method and also for experts only but describes good enough what I need to do to get the same result, as after running your script.

However I cannot find any kind of documentation explaining what your basic-install.sh script does, only the script itself. However the script is too long for just understanding what are the most important parts of a pi-hole installation because it contains much code (over 2600 loc) for user interaction or for different operating systems installing the very same packages.

I really think providing the basic-install.sh script is very good idea so people who trust you and do not want to install pi-hole on systems where things can be messed up can just “copy-paste-enter-working”. However for people who have systems with custom configurations (in my example using nginx as reverse proxy for all https traffic while handling TLS, ufw for simple firewall configurations, everything set up by Ansible) needs / wants to understand what I need to do to set up pi-hole manually.

As I cannot easily overlook the installation script for writing and uploading a documentation of a manual installation approach, I would like if anyone who understands pi-hole with its dependencies much better than I do could do this. This could also help external persons like me to understand how pi-hole works so we can contribute to it more easily.

We actually went through a while back and added a comment to nearly every line of code in basic-install.sh, with the aim of making it clearer exactly what it is doing.

The actual execution of the script starts at line 2683 (obviously this may change in future versions) with a call to the main() function. From there, it’s a case of following the code’s execution path and reading the comments as you go.

It really did used to be a basic install script, obviously over the years it has become a lot more complex, but the filename stuck!