version: '3.8' services: postgres: image: postgres:16-alpine container_name: horux360-db environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: horux360 ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5 api: build: context: . dockerfile: apps/api/Dockerfile container_name: horux360-api environment: NODE_ENV: development PORT: 4000 DATABASE_URL: postgresql://postgres:postgres@postgres:5432/horux360?schema=public JWT_SECRET: your-super-secret-jwt-key-min-32-chars-long-for-development JWT_EXPIRES_IN: 15m JWT_REFRESH_EXPIRES_IN: 7d CORS_ORIGIN: http://localhost:3000 ports: - "4000:4000" depends_on: postgres: condition: service_healthy web: build: context: . dockerfile: apps/web/Dockerfile container_name: horux360-web environment: NEXT_PUBLIC_API_URL: http://localhost:4000/api ports: - "3000:3000" depends_on: - api volumes: postgres_data: