version: '3.9' services: nginx: image: nginx container_name: nginx restart: unless-stopped command: nginx -c /config/nginx.conf volumes: - /home/nick/configs/routing/nginx:/config - /mnt/storage:/static:ro ports: - 80:80 - 443:443 networks: - proxy extra_hosts: - "host.docker.internal:host-gateway" certbot: image: certbot/dns-cloudflare container_name: certbot restart: unless-stopped entrypoint: "/bin/sh -c \"trap exit TERM; while :; do certbot renew --post-hook 'chown -R 1000:1000 /etc/letsencrypt'; sleep 12h & wait $${!}; done;\"" volumes: - /home/nick/configs/routing/nginx/certs/letsencrypt:/etc/letsencrypt networks: - proxy cloudflare_argo_tunnel: image: cloudflare/cloudflared container_name: cloudflared restart: unless-stopped volumes: - '/home/nick/configs/routing/cloudflared:/etc/cloudflared' networks: - proxy command: tunnel run --url https://nginx:443 --no-tls-verify jupiter user: '1000:1000' cloudflare_ddns: image: oznu/cloudflare-ddns container_name: cloudflare_ddns restart: unless-stopped environment: - API_KEY=${CF_API_KEY} - ZONE=${DOMAIN} - SUBDOMAIN=ddns - PROXIED=false network_mode: bridge authelia: image: authelia/authelia container_name: authelia restart: unless-stopped environment: - TZ=Europe/Athens volumes: - /home/nick/configs/routing/auth:/config healthcheck: disable: true networks: - proxy - authelia user: 1000:1000 authelia_db: image: postgres container_name: authelia_db restart: unless-stopped environment: - POSTGRES_USER=authelia - POSTGRES_PASSWORD=authelia - POSTGRES_DB=authelia volumes: - /home/nick/configs/routing/auth/db:/var/lib/postgresql/data networks: - authelia user: 1000:1000 authelia_broker: image: redis container_name: authelia_broker restart: unless-stopped networks: - authelia theme_park: image: ghcr.io/gilbn/theme.park container_name: theme_park restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/nick/configs/routing/theme_park:/config networks: - proxy whoami: image: containous/whoami container_name: whoami restart: unless-stopped networks: - proxy yourls: image: registry.karaolidis.com/nikas36/yourls-plugins container_name: yourls restart: unless-stopped environment: - 'YOURLS_DB_HOST=yourls_db:3306' - 'YOURLS_DB_USER=yourls' - 'YOURLS_DB_PASS=yourls' - 'YOURLS_SITE=${YOURLS_URL}' - 'YOURLS_USER=${YOURLS_USER}' - 'YOURLS_PASS=${YOURLS_PASS}' networks: - yourls - proxy depends_on: - yourls_db yourls_db: image: mysql container_name: yourls_db restart: unless-stopped volumes: - '/home/nick/configs/routing/yourls:/var/lib/mysql' environment: - 'MYSQL_RANDOM_ROOT_PASSWORD=yes' - 'MYSQL_USER=yourls' - 'MYSQL_PASSWORD=yourls' - 'MYSQL_DATABASE=yourls' networks: - yourls user: '1000:1000' networks: proxy: external: true name: proxy authelia: name: authelia yourls: name: yourls