3.5 KiB
name, description, metadata
| name | description | metadata | ||||||
|---|---|---|---|---|---|---|---|---|
| project-seaweedfs-offsite | Offsite záloha SeaweedFS blobů na Synology DS213+ v ordinaci — NAS si tahá rsync přes MikroTik na Tower1 .50 FUSE mount; postaveno 2026-06-14/15, runbook v Triliu |
|
Offsite záloha SeaweedFS příloh (viz project-seaweedfs) na staré Synology DS213+ v ordinaci. Postaveno v noci 2026-06-14→15 koordinací dvou instancí Claude přes sdílenou Trilium note (HQ = doma u Tower1, ORDINACE = na Lenovu v ordinaci). První plný mirror ~50 GiB / ~109k souborů, 0 mismatchů (sha256==jméno).
Datová cesta (NAS si tahá sám, „pull"):
Synology .40 (ordinace) ──ssh -p2250──> 78.80.38.51 (domácí WAN, PPPoE pevná) ──MikroTik NAT──> Tower1 192.168.1.50:22 ──> /mnt/seaweedfuse (FUSE RO)
- Zdroj .50: read-only FUSE mount celého fileru
/mnt/seaweedfuse(weed mount,/topicsskryté). Persistence:/boot/config/seaweed-mount.sh(volá sebash, protože /boot je VFAT noexec) + watchdog cron/boot/config/plugins/dynamix/seaweed-fuse.croná 5 min + hook v/boot/config/go. weed binárka zkopírovaná z kontejneru do/usr/local/sbin/weed. - MikroTik (192.168.1.2, admin): NAT dstnat
WAN:2250 → 192.168.1.50:22(src-address-list=ordinace), filter forward accept ordinace→.50:22. Oddělené od Medicus rsyncu (ten je2299→.76). Address-listordinace= 78.44.195.114 (MySQL/eRecept) + 185.140.244.138 (Synology rsync). - Cíl Synology DS213+ „synologymaly" (192.168.1.40, DSM 6.2.4, PPC, ext4):
/volume1/SeaweedFS-offsite. NAS dělársync -a --partialaditivně, BEZ --delete (immutable content-addressed bloby → bezpečný narůstající archiv). Žádné Hyper Backup (rozhodnutí majitele). Docker/Tailscale/rclone na PPC nejdou — proto plain rsync-over-ssh. - Auth: klíč
swbackup(ed25519, na NASu/root/.ssh/swbackup), autorizován na .50 root s forced-command wrapperem/boot/config/ssh/swbackup-rsync.sh(pustí jen read-onlyrsync --server --sender). - Plán: běží přes
/etc/crontab(0 4 * * * root sh /volume1/SeaweedFS-offsite/_sync.sh) — DSM Task Scheduler na téhle DSM nešel čistě (chybí v PATH); crond se restartuje přes/usr/syno/sbin/synoservicecfg --restart crond. Záloha původního crontabu/etc/crontab.bak_swoffsite. Sync skript: rsync-a --partial --stats --timeout=300, PID-lock/tmp/swoffsite.lock, log_sync.log,known_hosts_sw. Přirc!=0pošle mail, při úspěchu mlčí. - Monitoring: e-mail varianta A = NAS posílá sám přes mailer
/root/swoffsite_mailer.py(root, chmod 700). POZOR: klinická knihovnaEmailMessagingGraph.pyjede přes Microsoft Graph (OAuth client-cred, sender reports@buzalka.cz), NE SMTP — proto mailer napsán čistě ve stdlib Pythonu (urllib/json/ssl, žádný pip; msal/requests na PPC DSM 6.2 nejdou). Alert na vladimir.buzalka@buzalka.cz při chybě. Otestováno (status 202). - Restore (Fáze 5) ověřen: 3 bloby vytaženy mimo strom,
sha256(obsah)==název→ záloha čitelná i bez SeaweedFS. Projekt KOMPLETNÍ 2026-06-15.
Kompletní runbook (přístupy, provozní úkony, restore, troubleshooting): Trilium note „OrdinaceOffsiteBackupSeaWeedFS — RUNBOOK". Komunikační kanál mezi instancemi: Trilium note OrdinaceOffsiteBackupSeaWeedFS (noteId Gh5wzhrjTlv8). Viz setup-memory-sync princip — Trilium note jako async kanál mezi dvěma Claude.