# docker-compose.yml - Final Version Using Server-Side Volumes services: db-init: build: . command: ["/nba_go"] networks: - api.network restart: "no" api1: build: . networks: - api.network restart: always api2: build: . networks: - api.network restart: always api3: build: . networks: - api.network restart: always nginx: image: 'nginx:stable' volumes: # --- MODIFICATION --- # Point to the absolute path on the Coolify server. - '/data/nba-go-config/nginx:/etc/nginx:ro' depends_on: - api1 - api2 - api3 ports: - "8080" networks: - api.network prometheus: image: 'prom/prometheus:latest' volumes: # --- MODIFICATION --- # Point to the absolute path on the Coolify server. - '/data/nba-go-config/prometheus:/etc/prometheus' - 'prometheus_data:/prometheus' command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' ports: - "9090" networks: - api.network restart: unless-stopped grafana: image: grafana/grafana:latest ports: - "3000" environment: - GF_SECURITY_ADMIN_PASSWORD=testing volumes: # --- MODIFICATION --- # Point to the absolute path on the Coolify server. - '/data/nba-go-config/grafana/provisioning:/etc/grafana/provisioning' # This volume for user-created dashboards can remain relative or be removed # if you only manage dashboards via provisioning. - './grafana/dashboards:/var/lib/grafana/dashboards' - 'grafana_data:/var/lib/grafana' networks: - api.network restart: unless-stopped volumes: prometheus_data: grafana_data: networks: api.network: null