A publicly available Pi-Hole on Fly.io.
The resolver supports just DNS-over-TLS. UDP (or TCP) port 53 are blocked to prevent abuse.
Statistics and settings remain persistent with Fly Volumes.
Not yet implemented:
- Cross instance sync
- DNS-over-HTTPS
- Custom Pi Hole configs - the default setup is good enough for me at the moment.
-
Create the app with (it'll let you pick a unique name and region):
$ flyctl launch --no-deploy --copy-config
Note that this command modifies
fly.toml
- it addsapp
andprimary_region
to it; but it also removes comments and changes the actual service setup. Undo these latter changes. -
You'll have to create volume(s) named
ph_data
on every region you'd wish to deploy to:$ flyctl vol create ph_data --region REGION --size 1
-
Allocate a public IP address, so the instance will be reachable:
$ flyctl ips allocate-v4 # or allocate-v6
-
Setup the password for the admin panel:
$ flyctl secrets set WBEPASSWORD=a-good-password
-
Finally,
$ flyctl deploy
-
DNS shall be served from
APP-NAME.fly.dev
over DoT, TCP port 853. The admin panel is available atAPP-NAME.fly.dev/admin
.