ProxmoxVED/misc/data/docker-compose.yml
MickLesk 0226a043b8 feat(telemetry): add caching, alerts, migration & dashboard improvements
- Add Redis/in-memory caching layer (cache.go)
- Add SMTP alerting for high failure rates (alerts.go)
- Add data migration script from old API (migrate.go)
- Add docker-compose.yml for easy deployment
- Move dashboard to / with redirect from /dashboard
- Add dark/light mode toggle
- Add error analysis and failed apps statistics
- Add PVE version and LXC/VM type stats
- Add /metrics Prometheus endpoint
- Add /api/records pagination endpoint
- Add CSV export functionality
- Enhanced healthcheck with PB connection status

New ENV vars:
- Cache: ENABLE_CACHE, CACHE_TTL_SECONDS, ENABLE_REDIS, REDIS_URL
- Alerts: ALERT_ENABLED, SMTP_*, ALERT_FAILURE_THRESHOLD, etc.
- Migration: RUN_MIGRATION, MIGRATION_REQUIRED, MIGRATION_SOURCE_URL
2026-02-09 18:33:33 +01:00

75 lines
1.7 KiB
YAML
Generated

version: "3.8"
services:
telemetry:
build: .
container_name: proxmoxved-telemetry
restart: unless-stopped
ports:
- "8080:8080"
environment:
# Service config
LISTEN_ADDR: ":8080"
MAX_BODY_BYTES: "1024"
RATE_LIMIT_RPM: "60"
RATE_BURST: "20"
UPSTREAM_TIMEOUT_MS: "4000"
ENABLE_REQUEST_LOGGING: "false"
# PocketBase connection
POCKETBASE_URL: "http://pocketbase:8090"
POCKETBASE_COLLECTION: "_dev_telemetry_data"
# Cache config
ENABLE_CACHE: "true"
CACHE_TTL_SECONDS: "60"
ENABLE_REDIS: "false"
# REDIS_URL: "redis://redis:6379"
# Alert config (optional)
ALERT_ENABLED: "false"
# SMTP_HOST: ""
# SMTP_PORT: "587"
# SMTP_USER: ""
# SMTP_PASSWORD: ""
# SMTP_FROM: "telemetry@proxmoxved.local"
# SMTP_TO: ""
ALERT_FAILURE_THRESHOLD: "20.0"
ALERT_CHECK_INTERVAL_MIN: "15"
ALERT_COOLDOWN_MIN: "60"
# Migration config - set to "true" to run migration on first start
RUN_MIGRATION: "false"
MIGRATION_REQUIRED: "false"
MIGRATION_SOURCE_URL: "https://api.htl-braunau.at/dev/data"
depends_on:
- pocketbase
networks:
- telemetry-net
pocketbase:
image: ghcr.io/muchobien/pocketbase:latest
container_name: proxmoxved-pocketbase
restart: unless-stopped
ports:
- "8090:8090"
volumes:
- pocketbase-data:/pb_data
networks:
- telemetry-net
# Optional: Redis for caching
# redis:
# image: redis:7-alpine
# container_name: proxmoxved-redis
# restart: unless-stopped
# networks:
# - telemetry-net
volumes:
pocketbase-data:
networks:
telemetry-net:
driver: bridge