From 520a38a4deaf6e02f141082946b4727db0d42c9a Mon Sep 17 00:00:00 2001 From: Jozsef Gtta Date: Thu, 18 Jun 2026 15:28:38 +0000 Subject: [PATCH] docs: update siklos container list and monitoring stack section for Beszel --- siklos-docker-services.md | 56 +++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/siklos-docker-services.md b/siklos-docker-services.md index 0e63992..385299b 100644 --- a/siklos-docker-services.md +++ b/siklos-docker-services.md @@ -3,12 +3,12 @@ ## Host - **VM112 / siklos / docker-server** - IP: `192.168.88.27` -- Specs: 4c/12GB RAM (reduced from 16GB after photo services migrated to VM113) +- Specs: 4c/12GB RAM - SSH: `jgitta@192.168.88.27` (via Proxmox host jump) - Docker compose files: `/srv/docker//docker-compose.yml` - Note: `vm.swappiness=10` set in `/etc/sysctl.conf` (April 2026) -## Running Containers (as of April 2026) +## Running Containers (verified 2026-06-18) | Container | Image | Port(s) | Compose Path | |---|---|---|---| @@ -18,11 +18,8 @@ | onlyoffice | onlyoffice/documentserver | 8880 | /srv/docker/media/ | | homarr | homarr:latest | 7575 | /srv/docker/homarr/ | | uptime-kuma | uptime-kuma:2 | 3001 | /srv/docker/uptime-kuma/ | -| grafana | grafana:latest | 3020 | /srv/docker/monitoring/ | -| prometheus | prom/prometheus:latest | 9090 | /srv/docker/monitoring/ | -| node-exporter | prom/node-exporter:latest | 9100 | /srv/docker/monitoring/ | -| cadvisor | cadvisor:latest | 8090 | /srv/docker/monitoring/ | -| graphite-exporter | prom/graphite-exporter:latest | 9108-9109 | /srv/docker/monitoring/ | +| beszel | henrygd/beszel:latest | 8085 | /srv/docker/beszel/ | +| beszel-agent | henrygd/beszel-agent:latest | host (unix socket) | /srv/docker/beszel/ | | glances | nicolargo/glances:latest | 61208 | /srv/docker/glances/ | | meshcentral | typhonragewind/meshcentral:latest | 444 | /srv/docker/meshcentral/ | | guacamole | jwetzell/guacamole | 8383 | /srv/docker/guacamole/ | @@ -44,9 +41,9 @@ - Compose: `/srv/docker/open-webui/docker-compose.yml` - Connects to Ollama backend running on ThinkStation (192.168.88.41, no external port) -## Migrated Services -- **PhotoPrism** and **Immich** were migrated to VM113 (photos, 192.168.88.32) in April 2026 -- See `/home/jgitta/Documents/Claude/Projects/Photos/photos.md` for current details +## Photo Management +- **Immich** runs on VM113 (photos, 192.168.88.32) — migrated from siklos in April 2026 +- **PhotoPrism** was removed from siklos in June 2026 — Immich chosen as the single photo management solution ## Pi-hole - Port: 53 (DNS), 8080 (web UI) @@ -61,21 +58,23 @@ - **Watchdog**: native cron on Siklos at `*/5 * * * *` → `/usr/local/bin/pihole-watchdog.sh` (restarts if DNS fails); Claude scheduled task is a secondary layer - Uptime Kuma DNS monitor uses `192.168.88.27` (host IP, not Docker internal) -## Monitoring Stack -- Compose: `/srv/docker/monitoring/` -- Grafana: port 3020 (`grafana.jgitta.com`), datasource UID: `cffiqslf48feod` -- Prometheus: port 9090 -- Node Exporter on: siklos (.27), proxmox (.25), nextcloud (.62), jellyfin (.10), pbs (.60), caddy (.110), thinkstation (.41) — all port 9100 -- Grafana alert folder "Homelab Alerts": - - High RAM >90% for 5min - - Swap >50% for 5min - - CPU >90% for 10min - - Disk >85% for 5min - - Node Down 2min -- Alert annotations: `{{ $labels.instance }}` and `{{ $values.B }}%` -- Alerts use three-step reduce+threshold pipeline (not classic conditions) -- Telegram: bot token `8758434542:AAEW6omM7twyInsb2INuy6mD1w2EWXHqmzE`, chat `8260387200`, repeat every 4h -- Uptime Kuma: port 3001 (`status.jgitta.com`), joined to `pihole_default` network +## Monitoring Stack — Beszel (migrated 2026-06-18) + +Replaced Prometheus + Grafana + cAdvisor + node_exporter with **Beszel** — a lightweight all-in-one monitoring tool. + +- **Hub**: Docker container on siklos, port 8085 → `https://beszel.jgitta.com` +- **Compose**: `/srv/docker/beszel/docker-compose.yml` +- **Architecture**: Hub communicates with agents over SSH (port 45876). On siklos the agent uses a unix socket (`/srv/docker/beszel/beszel_socket/beszel.sock`) to avoid Docker network isolation issues. +- **Agent deployment**: Binary + systemd service (`beszel-agent.service`) on each remote host. Install script: `curl -sL https://get.beszel.dev/agent | bash` +- **Universal token**: Used to auto-register agents — stored in PocketBase `universal_tokens` collection +- **Agents installed on**: siklos (.27), jellyfin (.10), thinkstation (.41), proxmox jg-hud (.25), PBS (.60), caddy (.110), photos VM113 (.32), OCIS VM114 (.63) +- **Alerts configured** (via PocketBase API, regular user token required — not superuser): + - `Status` — host goes down + - `CPU` — >90% + - `Memory` — >90% + - `Disk` — >85% +- **Notifications**: Telegram bot `8758434542:AAEW6omM7twyInsb2INuy6mD1w2EWXHqmzE`, chat `8260387200` +- **Uptime Kuma**: port 3001 (`status.jgitta.com`), joined to `pihole_default` network — handles HTTP/port/DNS uptime checks (separate from Beszel resource monitoring) ## OnlyOffice - URL: `https://office.jgitta.com` @@ -94,11 +93,10 @@ ## Key Notes - Watchtower excludes Pi-hole from auto-updates -- NFS mount `/mnt/photos` was removed from Siklos `/etc/fstab` after PhotoPrism/Immich migration -- OnlyOffice replaced Collabora (lighter RAM usage) -- RAM reduced from 16GB → 12GB (April 2026, live via Proxmox balloon driver, no reboot) -- `vm.swappiness=10` set to reduce swap pressure after photo services migrated out - OnlyOffice replaced Collabora (lighter RAM usage) +- RAM reduced from 16GB → 12GB (April 2026, live via Proxmox balloon driver, no reboot) — freed further in June 2026 when PhotoPrism was removed +- `vm.swappiness=10` set to reduce swap pressure +- NFS mount `/mnt/immich-photos` (from VM113 192.168.88.32) is in fstab — read-only access to Immich photo storage ## Portainer Setup (April 2026)