feedvault.se/docker-compose.yml

79 lines
2 KiB
YAML

services:
# Django - Web framework
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}
- EMAIL_HOST_USER=${EMAIL_HOST_USER}
- EMAIL_HOST_PASSWORD=${EMAIL_HOST_PASSWORD}
- DISCORD_WEBHOOK_URL=${DISCORD_WEBHOOK_URL}
- DB_NAME=feedvault
- DB_HOST=feedvault_postgres
- DB_PORT=5432
- DB_USER=feedvault
- DB_PASSWORD=${DB_PASSWORD}
volumes:
- /mnt/Fourteen/Docker/FeedVault/staticfiles:/app/staticfiles
- /mnt/Fourteen/Docker/FeedVault/media:/app/media
- /mnt/Fourteen/Docker/FeedVault/data:/app/data
# 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
# Postgres - Database
postgres:
container_name: feedvault_postgres
image: postgres:16
user: "1000:1000"
ports:
- 5432:5432
restart: always
environment:
- POSTGRES_USER=feedvault
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_DB=feedvault
volumes:
- /mnt/Fourteen/Docker/FeedVault/Postgres:/var/lib/postgresql/data
networks:
- feedvault_db
# 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://feedvault_web:80
networks:
feedvault_tunnel:
driver: bridge
feedvault_db:
driver: bridge
feedvault_web:
driver: bridge