AvanzaCast/docker-compose.prod.yml

81 lines
1.8 KiB
YAML

version: '3.8'
services:
backend-api:
build:
context: ./packages/backend-api
dockerfile: Dockerfile
env_file:
- ./packages/backend-api/.env.production
environment:
- REDIS_URL=redis://redis:6379
restart: unless-stopped
networks:
- webnet
expose:
- "4000"
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:4000/health || exit 1"]
interval: 10s
timeout: 5s
retries: 5
studio-panel:
build:
context: .
dockerfile: ./packages/studio-panel/Dockerfile.simple
environment:
- VITE_TOKEN_SERVER_URL=http://backend-api:4000
- VITE_STUDIO_URL=https://avanzacast-studio.bfzqqk.easypanel.host
- VITE_BROADCASTPANEL_URL=https://avanzacast-broadcastpanel.bfzqqk.easypanel.host
restart: unless-stopped
networks:
- webnet
expose:
- "80"
volumes:
- ./docker/letsencrypt:/etc/letsencrypt:ro
broadcast-panel:
build:
context: ./packages/broadcast-panel
dockerfile: Dockerfile
environment:
- VITE_TOKEN_SERVER_URL=http://backend-api:4000
- VITE_BROADCASTPANEL_URL=https://avanzacast-broadcastpanel.bfzqqk.easypanel.host
restart: unless-stopped
networks:
- webnet
expose:
- "5175"
volumes:
- ./docker/letsencrypt:/etc/letsencrypt:ro
redis:
image: redis:7-alpine
restart: unless-stopped
networks:
- webnet
expose:
- "6379"
reverse-proxy:
image: nginx:stable-alpine
volumes:
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
- ./docker/letsencrypt:/etc/letsencrypt:ro
ports:
- "80:80"
- "443:443"
depends_on:
- backend-api
- studio-panel
- broadcast-panel
networks:
- webnet
restart: unless-stopped
networks:
webnet:
driver: bridge