services: # Django - Web framework feedvault: &feedvault container_name: feedvault image: ghcr.io/thelovinator1/feedvault:latest user: "1000:1000" restart: always networks: - feedvault_db - feedvault_web environment: - SECRET_KEY=${SECRET_KEY} - DEBUG=${DEBUG} - ADMIN_EMAIL=${ADMIN_EMAIL} - EMAIL_HOST_USER=${EMAIL_HOST_USER} - EMAIL_HOST_PASSWORD=${EMAIL_HOST_PASSWORD} - POSTGRES_HOST=feedvault_postgres - POSTGRES_PORT=5432 - POSTGRES_USER=feedvault - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - DISCORD_WEBHOOK_URL=${DISCORD_WEBHOOK_URL} # Nginx - Reverse proxy web: container_name: feedvault_web image: lscr.io/linuxserver/nginx:latest restart: always environment: - PUID=1000 - PGID=1000 - TZ=Europe/Stockholm expose: - 80 - 443 volumes: - /mnt/Fourteen/Docker/FeedVault/Nginx:/config networks: - feedvault_web - feedvault_tunnel # Cloudflare Tunnel - Securely connect your server to Cloudflare tunnel: container_name: feedvault_tunnel image: cloudflare/cloudflared:latest command: tunnel --no-autoupdate run --token $TUNNEL_TOKEN restart: always networks: - feedvault_tunnel environment: - TUNNEL_URL=http://web:80 # Postgres - Database postgres: container_name: feedvault_postgres image: postgres:16 user: "1000:1000" ports: - 5432:5432 restart: always environment: - POSTGRES_USER=feedvault - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=feedvault volumes: - /mnt/Fourteen/Docker/FeedVault/Postgres:/var/lib/postgresql/data networks: - feedvault_db networks: feedvault_tunnel: driver: bridge feedvault_db: driver: bridge feedvault_web: driver: bridge