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-configNote that this command modifies
fly.toml- it addsappandprimary_regionto 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_dataon 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.devover DoT, TCP port 853. The admin panel is available atAPP-NAME.fly.dev/admin.