Files
tutor-tool/docker-compose.yml
2026-02-21 23:09:22 +01:00

78 lines
1.9 KiB
YAML

services:
db:
image: postgres:17
restart: always
env_file: ./app/.env.db
ports:
- "127.0.0.1:5433:5432"
volumes:
- ./data/postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 5
tutortool:
build:
context: ./app
dockerfile: Dockerfile
env_file: ./app/.env.tutortool
ports:
- "127.0.0.1:5000:5000"
volumes:
- ./data/slides:/src/data/slides
- ./data/exports:/src/data/exports
- ./logs:/src/logs
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
restart: on-failure
redis:
image: redis:alpine
restart: unless-stopped
prometheus:
image: prom/prometheus:latest
restart: unless-stopped
ports:
- "127.0.0.1:9090:9090"
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- ./data/prometheus:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.retention.time=15d'
- '--storage.tsdb.retention.size=512MB'
depends_on:
- blackbox-exporter
blackbox-exporter:
image: prom/blackbox-exporter:latest
restart: unless-stopped
volumes:
- ./prometheus/blackbox.yml:/etc/blackbox-exporter/config.yml
grafana:
image: grafana/grafana:latest
restart: unless-stopped
env_file:
- ./app/.env.db
- ./.env.grafana
ports:
- "127.0.0.1:3333:3000"
volumes:
- ./data/grafana:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
environment:
- GF_USERS_ALLOW_SIGN_UP=false
- GF_SERVER_ROOT_URL=https://tutor.cato447.de/dashboard/
- GF_SERVER_SERVE_FROM_SUB_PATH=true
- GF_SECURITY_ALLOW_EMBEDDING=true
depends_on:
- prometheus
- db