Piadvanced Installation Script


Thanks to the people of pihole-discourse and reddit. This is just a collection of other people’s work in a nice package. I do not claim credit for anything other than creating this series of scripts.

  • This is a custom install for my pi! I am a tinkerer, and when I tinker, I tend to break things!!!
  • I started this as a much simpler script to help assist me in getting things back up and running as fast as possible.
  • A few of these things are easily done with raspi-config, but this streamlines the process.
  • I am not a programmer, but I know enough to get into trouble.
With some tweaking could work on debian devices that aren’t raspberry pi’s

I will be updating this with new stuff all the time. you can always run git pull the /etc/piadvanced to download any changes.

Visit the Github page for more details.


I was duplicating things between there and here. But that was a bit overkill.


Edited the top of the thread, but I’ve made considerable adjustments to this since I originally posted it.

I am very open to suggestions for it.

It already looks like a neat thing to mess around with.
Just a quick question, with privoxy alongside pihole is there a need to,say, configure the browser proxy to the pi ip and port or is that not necessary?

I’m playing around with iptables, and getting the pi to forward port 80 traffic through privoxy. Theoretically it should be able to be run transparently for an entire network.

1 Like

Keep updating this thing will you?

A quick question - I cloned the repo to just piadvanced without first figuring out the /etc/piadvanced part. I can’t delete the folder the normal way. Could you or would you let me know how to get rid of it?

@deathbybandaid deathbybandaid

Just tried things out.
The script seems a bit wonky. Like, I couldn’t make any choices. It just ran through everything. Anything I can do?

Just fixed it, had a strange issue with the files not working,

Edit: just saw your first comment

cd /etc

sudo rm -r piadvanced

sudo git clone https://github.com/deathbybandaid/piadvanced.git /etc/piadvanced/

1 Like


Just curious .
On your end does the web interface work for you after using your script?
for pihole?

I use nginx and lighttpd on different interfaces, but both on port 80. Nginx runs on eth0, and lighttpd on wlan0, I then use nginx to reverse proxy /admin.

How did everything else work?

1 Like

Everything ran withought errors and stuff.
I should have been way more specific, sorry.
I ran your script on a pi with pihole already installed - I am still messing around with your script…

What I 'm referring to is the pihole admin page ::: the dashboard doesn’t seem to want to load. All other parts of the admin site do what they are supposed to.

From your script I chose to install pivpn and privoxy and firewall.

Please excuse the scatteredness of this post.
For pivpn it did not(for me anyway) indicate an ip address the vpn would be listening on, I don’t think.
Instead of choosing another static ip I chose to use the ip address already associated with my pi.
Do i just have to go to whatismyip to get the external ip?? And it would be listening on port1194.

got the vpn ip with ip addr so that is cool.

What also works , besides using external IP, is dynamic address, i use the no-ip installer for that purpose.

Did you do the firewall? That’s where this script really shines

Dynamic IP changes every time. DDNS is mandatory if you have dynamic IP (?)

1 Like

Essentially yes, if your ISP gives you a new IP address, your VPN will fail to work. That is why you would use a service like duckdns, dyndns, or noip to keep your web address linked to you.

1 Like

piadvanced 4.0

(version numbers aren’t super important for a script like this, are they?)

This release really streamlines the process of creating new modules.

It adds alot of uniformity to the modules.

Modules now have 4 main areas to enter stuff.

  • Name of application
  • What it does
  • The actual scripting if the user selects “proceed”
  • The ability to leave “dev comments” at the bottom.

Additionally it now gives you an install log, a feature I will develop more in the future.

Aside from the install log, it now save a variable NAMEOFAPP=yes/no . In the future I plan on making a secondary script that you can use to rebuild the same device with the same variables. This will help with that process.


If anybody has any custom tweaks to their pihole’s or cool programs to run alongside, I’ve made the module super easy to work with.



For details.

1 Like