name: jetkvm-cloud-api networks: jetkvm: driver: bridge services: db: image: postgres restart: unless-stopped environment: POSTGRES_PASSWORD: jetkvm POSTGRES_USER: jetkvm POSTGRES_DB: jetkvm healthcheck: test: ["CMD-SHELL", "pg_isready -U jetkvm -d jetkvm"] interval: 5s timeout: 5s retries: 10 start_period: 5s ports: - "5432:5432" networks: - jetkvm volumes: - postgresql:/var/lib/postgresql # Run database migrations before starting the apps app-migrate: build: . env_file: - .env environment: DATABASE_URL: postgres://jetkvm:jetkvm@db:5432/jetkvm depends_on: db: condition: service_healthy command: ["sh", "-c", "npx prisma migrate deploy"] networks: - jetkvm restart: no app: build: . restart: unless-stopped env_file: - .env environment: PORT: 3000 DATABASE_URL: postgres://jetkvm:jetkvm@db:5432/jetkvm depends_on: db: condition: service_healthy app-migrate: condition: service_completed_successfully ports: - "3000:3000" networks: - jetkvm volumes: postgresql: driver: local