88 lines
2.3 KiB
YAML
88 lines
2.3 KiB
YAML
# docker-compose.yml for Fester
|
|
# ============================================================
|
|
# Quick start:
|
|
# docker-compose up -d
|
|
#
|
|
# Then open http://localhost:8080
|
|
#
|
|
# Volumes:
|
|
# fester-db — SQLite database (builds, sessions, events)
|
|
# fester-storage — snapshots, cache, CAS
|
|
# fester-config — config.yaml, storage.json, node_roles.json
|
|
# ============================================================
|
|
|
|
version: "3.8"
|
|
|
|
services:
|
|
fester:
|
|
build: .
|
|
image: fester:latest
|
|
container_name: fester
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8080:8080"
|
|
volumes:
|
|
- fester-db:/var/lib/fester
|
|
- fester-storage:/var/lib/fester/storage
|
|
- fester-config:/etc/fester
|
|
- ./config.yaml:/app/config.yaml:ro
|
|
environment:
|
|
- FESTER_DB_PATH=/var/lib/fester/fester.db
|
|
- FESTER_CONFIG=/app/config.yaml
|
|
- FESTER_NO_DRIFT=0
|
|
- FESTER_AUTOBUILD=0
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8080/api/health"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 10s
|
|
|
|
# Optional: MinIO for distributed cache
|
|
# Uncomment to enable
|
|
# minio:
|
|
# image: minio/minio:latest
|
|
# container_name: fester-minio
|
|
# restart: unless-stopped
|
|
# ports:
|
|
# - "9000:9000"
|
|
# - "9001:9001"
|
|
# volumes:
|
|
# - minio-data:/data
|
|
# environment:
|
|
# - MINIO_ROOT_USER=minioadmin
|
|
# - MINIO_ROOT_PASSWORD=minioadmin
|
|
# command: server /data --console-address ":9001"
|
|
|
|
# Optional: Prometheus scraper
|
|
# prometheus:
|
|
# image: prom/prometheus:latest
|
|
# container_name: fester-prometheus
|
|
# restart: unless-stopped
|
|
# ports:
|
|
# - "9090:9090"
|
|
# volumes:
|
|
# - ./add-to-prometheus-config.yml:/etc/prometheus/prometheus.yml:ro
|
|
# - prometheus-data:/prometheus
|
|
|
|
# Optional: Grafana dashboard
|
|
# grafana:
|
|
# image: grafana/grafana:latest
|
|
# container_name: fester-grafana
|
|
# restart: unless-stopped
|
|
# ports:
|
|
# - "3000:3000"
|
|
# volumes:
|
|
# - grafana-data:/var/lib/grafana
|
|
# - ./add-to-grafana-config.json:/etc/grafana/provisioning/dashboards/fester.json:ro
|
|
# environment:
|
|
# - GF_SECURITY_ADMIN_PASSWORD=admin
|
|
|
|
volumes:
|
|
fester-db:
|
|
fester-storage:
|
|
fester-config:
|
|
# minio-data:
|
|
# prometheus-data:
|
|
# grafana-data:
|