feat: media_analytics — ETL PC+VPS → ClickHouse + Grafana
2 ETLs cada 5min suben snapshots (Jellyfin, *arr, Prowlarr, gnula, popelis users/mylist/events) a ClickHouse en el VPS, visualizado en Grafana (grafana.datardos.com). Ingesta PC via tunel SSH; popelis via ETL local en el VPS. Usa clickhouse_insert_rows_py_infra.
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
services:
|
||||
clickhouse:
|
||||
image: clickhouse/clickhouse-server:24.8-alpine
|
||||
container_name: clickhouse
|
||||
restart: always
|
||||
environment:
|
||||
CLICKHOUSE_DB: analytics
|
||||
CLICKHOUSE_USER: analytics
|
||||
CLICKHOUSE_PASSWORD: ${CH_PASSWORD}
|
||||
CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: "1"
|
||||
ulimits:
|
||||
nofile:
|
||||
soft: 262144
|
||||
hard: 262144
|
||||
volumes:
|
||||
- clickhouse_data:/var/lib/clickhouse
|
||||
- ./clickhouse/schema.sql:/docker-entrypoint-initdb.d/01_schema.sql:ro
|
||||
networks:
|
||||
- coolify
|
||||
ports:
|
||||
# HTTP solo en localhost del VPS (no publico). Ingesta del PC via tunel SSH.
|
||||
# Grafana usa el nativo 9000 por la red coolify (no expuesto).
|
||||
- "127.0.0.1:8123:8123"
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 2g
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana:11.2.0
|
||||
container_name: grafana
|
||||
restart: always
|
||||
environment:
|
||||
GF_SECURITY_ADMIN_USER: admin
|
||||
GF_SECURITY_ADMIN_PASSWORD: ${GF_PASSWORD}
|
||||
GF_INSTALL_PLUGINS: grafana-clickhouse-datasource
|
||||
GF_SERVER_ROOT_URL: https://grafana.datardos.com
|
||||
GF_USERS_ALLOW_SIGN_UP: "false"
|
||||
CH_PASSWORD: ${CH_PASSWORD}
|
||||
volumes:
|
||||
- grafana_data:/var/lib/grafana
|
||||
- ./grafana/provisioning:/etc/grafana/provisioning:ro
|
||||
networks:
|
||||
- coolify
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.docker.network: coolify
|
||||
traefik.http.routers.grafana.entrypoints: https
|
||||
traefik.http.routers.grafana.rule: Host(`grafana.datardos.com`)
|
||||
traefik.http.routers.grafana.tls: "true"
|
||||
traefik.http.routers.grafana.tls.certresolver: letsencrypt
|
||||
traefik.http.services.grafana.loadbalancer.server.port: "3000"
|
||||
|
||||
volumes:
|
||||
clickhouse_data:
|
||||
grafana_data:
|
||||
|
||||
networks:
|
||||
coolify:
|
||||
external: true
|
||||
Reference in New Issue
Block a user