services: postgres: image: postgres:16-alpine container_name: cesizen-db restart: unless-stopped ports: - "5432:5432" environment: POSTGRES_DB: cesizen POSTGRES_USER: cesizen POSTGRES_PASSWORD: cesizen_secret volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U cesizen"] interval: 5s timeout: 5s retries: 5 backend: build: ./backend container_name: cesizen-api restart: unless-stopped ports: - "8000:8000" environment: APP_ENV: local APP_DEBUG: "true" APP_KEY: base64:UMxXo/+o7v1n6E+kimssgw8L2lQ2NQGMuQffn+Vh7lc= APP_URL: http://localhost:8000 DB_CONNECTION: pgsql DB_HOST: postgres DB_PORT: 5432 DB_DATABASE: cesizen DB_USERNAME: cesizen DB_PASSWORD: cesizen_secret JWT_SECRET: w89wy05gyYCjGGBXyRHqthKEou5e40er2rdjg69j0mUCRL5ljescaC1CiMl8awtg FRONTEND_URL: http://localhost:3000 volumes: - ./backend:/app depends_on: postgres: condition: service_healthy frontend: build: ./frontend container_name: cesizen-front restart: unless-stopped ports: - "3000:3000" environment: NEXT_PUBLIC_API_URL: http://localhost:8000/api/v1 volumes: - ./frontend:/app - /app/node_modules depends_on: - backend volumes: postgres_data: