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 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 --no-autoupdate --no-tls-verify --origincert /etc/cloudflared/cert.pem --hostname ${DOMAIN} --origin-server-name *.${DOMAIN} --url https://nginx:443 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 homer_private: image: b4bz/homer container_name: homer_private restart: unless-stopped volumes: - '/home/nick/configs/routing/homer:/www/assets' environment: - UID=1000 - GID=1000 networks: - proxy homer_social: image: b4bz/homer container_name: homer_social restart: unless-stopped volumes: - '/home/nick/configs/routing/social:/www/assets' environment: - UID=1000 - GID=1000 networks: - proxy whoami: image: containous/whoami container_name: whoami restart: unless-stopped networks: - proxy networks: proxy: external: true name: proxy