1c7fa781ad
- Fix database configuration to use PostgreSQL in production - Add knexfile.js to support both SQLite (dev) and PostgreSQL (prod) - Create admin user creation script (scripts/create-admin.js) - Clean up docker-compose files: - Remove redundant docker-compose.yml and docker-compose.local.yml - Create docker-compose.dev.yml for development - Update docker-compose.prod.yml with proper DB configuration - Clean up environment files: - Update .env.example for development - Update .env.production.example with proper settings - Remove redundant .env.local - Update backend .env.example with database configuration options - Create comprehensive DEPLOYMENT.md with admin setup instructions - Fix production database name consistency (picpeak instead of photoapp)
61 lines
1.5 KiB
YAML
61 lines
1.5 KiB
YAML
# 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 |