version: '3' services: wireguard-webadmin: container_name: wireguard-webadmin restart: unless-stopped image: eduardosilva/wireguard_webadmin:latest environment: - SERVER_ADDRESS=127.0.0.1 - DEBUG_MODE=True - COMPOSE_VERSION=02r - TZ=${TIMEZONE} volumes: - wireguard:/etc/wireguard - static_volume:/app_static_files/ - dnsmasq_conf:/etc/dnsmasq - app_secrets:/app_secrets/ - rrd_data:/rrd_data/ ports: # Do not directly expose the Django port to the internet, use some kind of reverse proxy with SSL. - "127.0.0.1:8000:8000" # Warning: Docker will have a hard time handling large amount of ports. Expose only the ports that you need. # Ports for multiple WireGuard instances. (Probably, you just need one) - "51820-51839:51820-51839/udp" # Ports for port forwarding rules. Add your own ports here if you need them. - "8080-8089:8080-8089/tcp" cap_add: - NET_ADMIN - SYS_MODULE sysctls: - net.ipv4.conf.all.src_valid_mark=1 - net.ipv4.ip_forward=1 command: /bin/bash /app/init.sh wireguard-webadmin-cron: container_name: wireguard-webadmin-cron restart: unless-stopped image: eduardosilva/wireguard_webadmin_cron:latest environment: - TZ=${TIMEZONE} depends_on: - wireguard-webadmin wireguard-webadmin-rrdtool: container_name: wireguard-webadmin-rrdtool restart: unless-stopped image: eduardosilva/wireguard_webadmin_rrdtool:latest volumes: - app_secrets:/app_secrets/ - rrd_data:/rrd_data/ environment: - TZ=${TIMEZONE} depends_on: - wireguard-webadmin wireguard-webadmin-dns: container_name: wireguard-webadmin-dns restart: unless-stopped image: eduardosilva/wireguard_webadmin_dns:latest environment: - TZ=${TIMEZONE} volumes: - dnsmasq_conf:/etc/dnsmasq/ volumes: static_volume: wireguard: dnsmasq_conf: app_secrets: rrd_data: