services: api: build: context: . dockerfile: Dockerfile.api ports: - "3001:3001" volumes: - pipsim-data:/app/data environment: - PORT=3001 - LOG_LEVEL=info - API_KEY=${API_KEY} - JWT_SECRET=${JWT_SECRET} - SMTP_HOST=${SMTP_HOST} - SMTP_PORT=${SMTP_PORT} - SMTP_USER=${SMTP_USER} - SMTP_PASS=${SMTP_PASS} - SMTP_FROM=${SMTP_FROM} - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN} - TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID} - CORS_ORIGIN=https://${DOMAIN} restart: unless-stopped deploy: resources: limits: memory: 2G web: build: context: . dockerfile: Dockerfile.web ports: - "3000:3000" environment: - NEXT_PUBLIC_API_URL=https://${DOMAIN} restart: unless-stopped deploy: resources: limits: memory: 512M caddy: image: caddy:2-alpine ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy-data:/data depends_on: - api - web restart: unless-stopped uptime-kuma: image: louislam/uptime-kuma:latest ports: - "3002:3001" volumes: - uptime-data:/app/data restart: unless-stopped volumes: pipsim-data: caddy-data: uptime-data: