- Yodeck API poller (every 10 min, paginated, 310 players) - SQLite persistence (players + activity logs) - SNMP v2c agent via net-snmp pass_persist - Zabbix API auto host creation/update (6.0+) - Flask web dashboard with live player status and log - Docker deployment with persistent volume - dev_server.py for local testing without Docker Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
40 lines
1.9 KiB
YAML
40 lines
1.9 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
yodmon:
|
|
build: .
|
|
container_name: yodmon
|
|
restart: unless-stopped
|
|
ports:
|
|
- "161:161/udp" # SNMP — polled by Zabbix every minute
|
|
- "8080:8080" # Web UI
|
|
volumes:
|
|
- yodmon_data:/data
|
|
environment:
|
|
# ── Yodeck ────────────────────────────────────────────────────────────
|
|
YODECK_API_TOKEN: "yodeck:fXQKm1hLvJY88necL3GiLVntpmyNS5BpKp8MpDK8GH2UvCPrg8BeHwpBSQaEtF0q"
|
|
YODECK_POLL_INTERVAL_MINUTES: "10"
|
|
|
|
# ── SNMP ──────────────────────────────────────────────────────────────
|
|
SNMP_COMMUNITY: "public"
|
|
# Private Enterprise Number OID for this application.
|
|
# All player data is served under this subtree.
|
|
ENTERPRISE_OID: ".1.3.6.1.4.1.99999"
|
|
|
|
# ── Network ───────────────────────────────────────────────────────────
|
|
# IP address (or hostname) of THIS host, reachable by the Zabbix server.
|
|
# Zabbix will send SNMP polls to this address on port 161.
|
|
APP_HOST: "192.168.1.100" # ← change to your actual host IP
|
|
|
|
# ── Zabbix API (optional) ─────────────────────────────────────────────
|
|
# Leave ZABBIX_URL empty to disable automatic host management.
|
|
# Requires Zabbix 6.0+.
|
|
ZABBIX_URL: "" # e.g. "http://zabbix.example.com"
|
|
ZABBIX_USER: "Admin"
|
|
ZABBIX_PASSWORD: ""
|
|
ZABBIX_HOST_GROUP: "Yodeck Players"
|
|
ZABBIX_SNMP_COMMUNITY: "public"
|
|
|
|
volumes:
|
|
yodmon_data:
|