A lightweight DNS server with a built-in web dashboard.
329
A lightweight DNS server with a built-in web dashboard for extremely easy management of records, certificates, and configuration. Supports IPv6, DoH DNS over HTTPS, host file blacklist, caching, TTL manipulation.
Run the container:
On first run, the server will generate a random admin password:
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā FIRST-RUN ADMIN CREDENTIALS ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā£
ā Username: admin ā
ā Password: <generated-password> ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā£
ā Change this password after first login! ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Then open your browser:
http://<server-ip>:8080
Login using the generated credentials.
rm ./data/data.db
You must mount a volume to persist:
docker run -d \
--name dns-server \
-p 53:53/udp \
-p 53:53/tcp \
-p 8080:8080/tcp \
-p 443:443/tcp \
-v "$(pwd)/data:/app/data" \
-e DNS_DB_PATH=/app/data/data.db \
-e DNS_DNS_PORT=53 \
-e DNS_WEB_PORT=8080 \
wozer/dns-server:latest
services:
dnsserver:
image: wozer/dns-server:latest
container_name: dns-server
ports:
- "53:53/udp"
- "53:53/tcp"
- "8080:8080/tcp"
- "443:443/tcp"
volumes:
- ./data:/app/data
environment:
- DNS_DB_PATH=/app/data/data.db
- DNS_DNS_PORT=53
- DNS_WEB_PORT=8080
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:8080/health"]
interval: 30s
timeout: 5s
start_period: 10s
retries: 3
Start it with:
docker compose up -d
docker logs dns-server
| Variable | Description | Default |
|---|---|---|
DNS_DB_PATH | Path to database file | /app/data/data.db |
DNS_DNS_PORT | DNS server port | 53 |
DNS_WEB_PORT | Web dashboard port | 8080 |
53 may require elevated privileges depending on your system.Content type
Image
Digest
sha256:9520e1e06ā¦
Size
74.7 MB
Last updated
6 months ago
docker pull wozer/dns-server