services: db: image: postgres:16-alpine container_name: server-manager-db restart: unless-stopped environment: POSTGRES_DB: server_manager POSTGRES_USER: postgres POSTGRES_PASSWORD: ${DB_PASSWORD:-postgres} volumes: - db_data:/var/lib/postgresql/data networks: - app-network healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 5 backend: image: ${REGISTRY:-git.jiosii.com}/ops/server-manager-backend:${TAG:-latest} build: context: ./backend dockerfile: Dockerfile container_name: server-manager-backend restart: unless-stopped user: root volumes: - /var/run/docker.sock:/var/run/docker.sock environment: NODE_ENV: production PORT: 3001 DB_HOST: db DB_PORT: 5432 DB_NAME: server_manager DB_USER: postgres DB_PASSWORD: ${DB_PASSWORD:-postgres} JWT_SECRET: ${JWT_SECRET:-change-me-in-production} CORS_ORIGIN: ${CORS_ORIGIN:-http://localhost} depends_on: db: condition: service_healthy networks: - app-network ports: - "3001:3001" frontend: image: ${REGISTRY:-git.jiosii.com}/ops/server-manager-frontend:${TAG:-latest} build: context: ./frontend dockerfile: Dockerfile container_name: server-manager-frontend restart: unless-stopped depends_on: - backend networks: - app-network ports: - "4000:80" networks: app-network: driver: bridge volumes: db_data: