Skip to content

Adguard Home is a App iconPi-Hole like, free and open source, powerful network-wide ads & trackers blocking DNS server.

I have 2 instances running, on two different host, and sync them with https://github.com/bakito/adguardhome-sync.

services:
adguardhome:
container_name: adguard_app
image: adguard/adguardhome
restart: unless-stopped
volumes:
- /data/apps/adguard/workdir:/opt/adguardhome/work
- /data/apps/adguard/confdir:/opt/adguardhome/conf
ports:
- 53:53/tcp
- 53:53/udp
- 3245:80
networks:
- homelab
labels:
- traefik.enable=true
- traefik.http.routers.adguard.rule=Host(`adguard.zrx.sh`)
- traefik.http.services.adguard.loadbalancer.server.port=3245
- traefik.http.routers.adguard.middlewares=homelab-whitelist@file
- traefik.http.routers.adguard.tls=true
- traefik.http.routers.adguard.tls.certresolver=production
- traefik.http.routers.adguard.tls.domains[0].main=zrx.sh
- traefik.http.routers.adguard.tls.domains[0].sans=*.zrx.sh
adguardhome-sync:
image: ghcr.io/bakito/adguardhome-sync
container_name: adguardhome-sync
command: run
environment:
LOG_LEVEL: 'info'
ORIGIN_URL: 'https://adguard.zrx.sh'
# ORIGIN_WEB_URL: 'https://some-other.url'
ORIGIN_USERNAME: 'raphaelgc'
ORIGIN_PASSWORD: ${ORIGIN_PASSWORD}
REPLICA1_URL: 'https://adguard-jupiter.zrx.sh'
REPLICA1_USERNAME: 'raphaelgc'
REPLICA1_PASSWORD: ${ORIGIN_PASSWORD}
CRON: '0 */12 * * *' # run every 2 hours
RUN_ON_START: 'true'
API_PORT: 8080
ports:
- 8432:8080
restart: unless-stopped
networks:
homelab:
external: true