Files
ExcaliDash/docker-compose.yml
T
2025-12-21 10:08:05 -08:00

66 lines
1.5 KiB
YAML

services:
backend:
build:
context: ./backend
dockerfile: Dockerfile
container_name: excalidash-backend
environment:
- DATABASE_URL=file:/app/prisma/dev.db
- PORT=8000
- NODE_ENV=production
# Required for horizontal scaling (k8s): must be the same across all instances
- CSRF_SECRET=${CSRF_SECRET}
volumes:
- backend-data:/app/prisma
networks:
- excalidash-network
restart: unless-stopped
healthcheck:
test:
[
"CMD",
"node",
"-e",
"require('http').get('http://localhost:8000/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1))",
]
interval: 30s
timeout: 10s
retries: 3
frontend:
build:
context: .
dockerfile: frontend/Dockerfile
container_name: excalidash-frontend
ports:
- "6767:80"
environment:
# Backend URL for nginx proxy (host:port format, no protocol)
# Override for reverse proxy setups (e.g., excalidash-backend.svc.cluster.local:8000)
- BACKEND_URL=backend:8000
depends_on:
- backend
networks:
- excalidash-network
restart: unless-stopped
healthcheck:
test:
[
"CMD",
"wget",
"--quiet",
"--tries=1",
"--spider",
"http://localhost:80",
]
interval: 30s
timeout: 10s
retries: 3
networks:
excalidash-network:
driver: bridge
volumes:
backend-data: