Files
server-manager/docker-compose.yml
Ernie Butcher 4233734759
All checks were successful
continuous-integration/drone/push Build is passing
feat: live Docker data — containers, services, logs, metrics via dockerode
- Backend: rewrote containers/services/logs/metrics routes to use dockerode
- docker-compose: mount /var/run/docker.sock, run backend as root
- .drone.yml: sync docker-compose.yml from Gitea on deploy
- Frontend: Containers page shows real data with wired start/stop/restart
- Frontend: Services page shows Docker Compose stacks with health status
- Frontend: Metrics page adds disk (docker df) and containers cards + chart legend
- Frontend: Logs page replaces text input with container dropdown + auto-refresh
2026-03-18 18:33:25 -04:00

68 lines
1.6 KiB
YAML

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: