Run locally
Terminal
$ npx launchfile up piholeRequires Docker Desktop. No source code needed — pulls pre-built images and starts pihole with all dependencies.
Image:
pihole/pihole:latestLaunchfileView on GitHub
# yaml-language-server: $schema=https://launchfile.dev/schema/v1
version: launch/v1
name: pihole
description: "Network-wide ad blocking via DNS"
repository: https://github.com/pi-hole/pi-hole
# DNS is served on port 53 over both TCP and UDP (upstream compose publishes
# 53:53/tcp and 53:53/udp). Resolver clients expect host port 53 exactly, and
# on a bridge network upstream sets FTLCONF_dns_listeningMode=all.
image: pihole/pihole:latest
provides:
- name: admin
protocol: http
port: 80
exposed: true
- name: dns
protocol: tcp
port: 53
exposed: true
- name: dns-udp
protocol: udp
port: 53
exposed: true
env:
WEBPASSWORD:
generator: secret
sensitive: true
description: "Admin web interface password"
TZ:
default: "UTC"
description: "Timezone"
storage:
pihole:
path: /etc/pihole
persistent: true
dnsmasq:
path: /etc/dnsmasq.d
persistent: true
restart: alwaysLearn More
Spec references for features used in this Launchfile.