services: postgres: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: tiptop_prod POSTGRES_PASSWORD: tiptop_prod_password POSTGRES_DB: the_tip_top_prod volumes: - tiptop_prod_postgres_data:/var/lib/postgresql/data healthcheck: test: [ "CMD-SHELL", "pg_isready -U tiptop_prod -d the_tip_top_prod" ] interval: 10s timeout: 5s retries: 10 networks: - tiptop-prod backend: image: ${REGISTRY}/the-tip-top/backend:${IMAGE_TAG} restart: unless-stopped depends_on: postgres: condition: service_healthy environment: PORT: 5000 NODE_ENV: production DATABASE_URL: postgresql://tiptop_prod:tiptop_prod_password@postgres:5432/the_tip_top_prod JWT_SECRET: prod_secret_change_me APP_URL: http://192.168.1.23:5003 MAIL_HOST: smtp.gmail.com MAIL_PORT: 587 MAIL_USER: "" MAIL_PASS: "" MAIL_FROM: "The Tip Top " command: > sh -c " npx prisma migrate deploy && npm run init:db && npm start " ports: - "5003:5000" networks: - tiptop-prod frontend: image: ${REGISTRY}/the-tip-top/frontend:${IMAGE_TAG} restart: unless-stopped depends_on: - backend ports: - "5175:80" networks: - tiptop-prod volumes: tiptop_prod_postgres_data: name: tiptop_prod_postgres_data networks: tiptop-prod: name: tiptop-prod