services: postgres: image: postgres:16-alpine container_name: ten-minute-postgres-dev environment: POSTGRES_DB: ten_minute_planner POSTGRES_USER: planner POSTGRES_PASSWORD: planner1234 volumes: - postgres_dev_data:/var/lib/postgresql/data ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U planner -d ten_minute_planner"] interval: 10s timeout: 5s retries: 10 restart: unless-stopped backend: image: node:22-alpine container_name: ten-minute-backend-dev working_dir: /app command: sh -c "npm install && npm run dev" environment: PORT: 3001 DATABASE_URL: postgresql://planner:planner1234@postgres:5432/ten_minute_planner CORS_ORIGIN: http://localhost:5173 SESSION_TTL_DAYS: 30 volumes: - ./backend:/app - backend_node_modules:/app/node_modules depends_on: postgres: condition: service_healthy ports: - "3001:3001" restart: unless-stopped frontend: image: node:22-alpine container_name: ten-minute-frontend-dev working_dir: /app command: sh -c "npm install && npm run dev" environment: VITE_API_BASE_URL: http://localhost:3001 CHOKIDAR_USEPOLLING: "true" volumes: - .:/app - /app/backend - frontend_node_modules:/app/node_modules depends_on: - backend ports: - "5173:5173" restart: unless-stopped volumes: postgres_dev_data: backend_node_modules: frontend_node_modules: