# Development Docker Compose Configuration version: '3.8' services: backend: build: context: ./backend dockerfile: Dockerfile ports: - "3001:3000" environment: - NODE_ENV=development - PORT=3000 - JWT_SECRET=dev-secret-change-in-production - ADMIN_URL=http://localhost:3005 - FRONTEND_URL=http://localhost:3005 - DATABASE_CLIENT=sqlite3 - DATABASE_PATH=./data/photo_sharing.db # Email - uses Mailhog - SMTP_HOST=mailhog - SMTP_PORT=1025 - SMTP_SECURE=false - EMAIL_FROM=noreply@photo-sharing.local volumes: - ./backend:/app - /app/node_modules - ./storage:/app/storage - ./data:/app/data - ./logs:/app/logs depends_on: - mailhog command: sh -c "npm install && npm run dev" healthcheck: test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/api/health"] interval: 30s timeout: 10s retries: 3 frontend: build: context: ./frontend dockerfile: Dockerfile ports: - "3005:80" environment: - NODE_ENV=development volumes: - ./frontend/nginx.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - backend healthcheck: test: ["CMD", "curl", "-f", "http://localhost/health"] interval: 30s timeout: 10s retries: 3 mailhog: image: mailhog/mailhog:latest ports: - "1025:1025" # SMTP - "8025:8025" # Web UI