services: app: build: ./backend env_file: - ./.env environment: DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB} depends_on: db: condition: service_healthy ports: - "8000:8000" db: image: postgres:16 env_file: - ./.env environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} volumes: - db_data:/var/lib/postgresql/data ports: - "5434:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 5s timeout: 5s retries: 5 frontend: build: context: ./frontend args: VITE_API_URL: ${VITE_API_URL:-http://localhost:8000} ports: - "3000:4173" depends_on: - app volumes: db_data: