docker-compose.ymlā¢1.25 kB
version: '3.8'
services:
egh-research-server:
build:
context: .
dockerfile: Dockerfile
container_name: egh-research-server
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- LOG_LEVEL=info
volumes:
# Optional: Mount host directory for PDF output persistence
- ./pdf-output:/tmp/pdf-generation
# Optional: Mount custom database if you want to use external one
# - ./custom-data:/app/data
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
labels:
- "traefik.enable=true"
- "traefik.http.routers.egh-research.rule=Host(`egh-research.local`)"
- "traefik.http.services.egh-research.loadbalancer.server.port=3000"
# Optional: Add a reverse proxy for production
# nginx:
# image: nginx:alpine
# container_name: egh-research-proxy
# ports:
# - "80:80"
# - "443:443"
# volumes:
# - ./nginx.conf:/etc/nginx/nginx.conf:ro
# - ./ssl:/etc/ssl:ro
# depends_on:
# - egh-research-server
# restart: unless-stopped
networks:
default:
name: egh-research-network