Commit Graph
12 Commits
Author SHA1 Message Date
Julien LutranandClaude Fable 5 a2003a11e8 nuc: autosuspend/UAS ruled out — both already disabled, drop happened anyway
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-30 01:04:04 +02:00
Julien LutranandClaude Fable 5 058833470b nuc: second dropout rules out the cable; add the pool-health watchdog
Aug 29 16:22 the enclosure dropped again despite the new cable, pool
suspended, and ZED sent nothing (suspended pools keep the vdev ONLINE;
data-class events were muted). Enclosure replacement is now the prime
candidate and a gate before the pool hosts the ks4 off-site leg.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-30 00:33:29 +02:00
Julien LutranandClaude Fable 5 5f827638d6 nuc: scrub clean — 0B repaired, no known data errors, no dropouts
The metadata/file errors were artefacts of the interrupted writes, not
corruption. The 2.5h scrub doubled as a soak test of the new cable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 19:19:24 +02:00
Julien LutranandClaude Fable 5 6ab143c856 nuc: note why its mail path differs from ks2/ks4 (source address, not config)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 17:44:03 +02:00
Julien LutranandClaude Fable 5 6461bf7081 nuc: alerting works — zed -> mail -> msmtp -> submission(587)
Records the working chain and the two dead ends: port 25 gets the mail
rspamd-rejected (dynamic home IP, no SPF alignment), and the missing
PTR delays the 587 greeting enough that short-timeout probes look like
a firewall block. Credentials live only in /etc/msmtprc (600).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 17:16:55 +02:00
Julien LutranandClaude Fable 5 5ceb2ab742 nuc: document the usb4t dropout incident, recovery and alerting fix
Nightly replication had been failing since Aug 17 behind a misleading
incus error; root cause is a JMicron USB bridge dropping off the bus
(61 disconnects in 30 days) and suspending the pool — the disk itself
is SMART-clean. Records the recovery (clear/scrub), the damage, the
ordered fixes, and why nothing alerted: zed was running without an MTA
on the host.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 16:49:27 +02:00
Julien LutranandClaude Fable 5 a0e3a7dd86 doc: split per-host READMEs, gitea cross-repo links, consistency pass
- nuc/README.md and ks4/README.md carry the host sections (+ network
  flows) that lived in the top-level README; links rebased
- top README: repo links (doc/scripts on git.lutran.fr), index points
  at the new per-host pages
- cross-repo references now use https://git.lutran.fr/julien/scripts
  instead of relative ../scripts paths that resolve nowhere
- plakar-s3-data.md and plakar-incus-integration.md marked SUPERSEDED
  / RETIRED with pointers to restic-backup.md; their measurements and
  rationale kept
- install.md, local-backup-cron.md, incus-copy.md: crontab sections
  updated to the live schedule (01:00 replicas, 05:00 restic, Sun
  maintenance); retired legs labelled as such
- restic-backup.md: status live, cutover recorded, post-GC memory
  estimate, seed plan dated
- seafile-gc.md: online GC noted, stale 'crons commented out' removed
- ks2/: what-ks2-does-today rewritten (nothing writes to it any more),
  legs table and gates reflect restic, decommission steps updated
- db-exclude replaces the plakar-era config name (script keeps a
  fallback)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 16:04:07 +02:00
Julien LutranandClaude Opus 4.8 4b30b43c7f nuc/transmission-bt: document the watch folder for auto-adding torrents
scp a .torrent into /srv/media/.watchdir and Transmission auto-downloads
it. Documents the settings (watch-dir-force-generic + trash-original),
the correct active config path (--config-dir .../info), and the perms.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-17 17:38:43 +02:00
Julien LutranandClaude Opus 4.8 19bad64105 nuc: document LAN gateway migration 192.168.0.1 -> 192.168.0.2
Update host NIC/interfaces (gw + DNS to public 1.1.1.1/9.9.9.9, no
container dependency), fix transmission-bt kill-switch routes, and add a
note that DHCP instances self-heal while static ones (privoxy,
transmission-bt) must be updated by hand. Also spell out the macvlan
test-from-inside/external-host rule.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-17 11:07:16 +02:00
Julien LutranandClaude Opus 4.8 43ef0e5447 nuc/jellyfin-client: document host-side input hotplug auto-recovery
Add udev rule + oneshot service + script on nuc that restart the
container kiosk when the Logitech Unifying receiver is replugged, since
hotplug uevents don't cross into the container's netns and cage only
enumerates input at startup.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-11 01:39:27 +02:00
Julien LutranandClaude Fable 5 61e3606d33 Set Europe/Paris timezone in all nuc containers
Applied live to the 5 running containers; install scripts and the
post-install checklist now include the timedatectl step.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-11 00:52:05 +02:00
Julien LutranandClaude Fable 5 ee9eaee889 Initial import: nuc and ks4 infrastructure documentation
README with instance tables and nuc<->ks4 network flow chart;
per-container install/troubleshooting docs for nuc (jellyfin
server/client, transmission-bt, bare-metal reinstall) and the
ks4 two-leg backup scheme (incus-copy over wireguard).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-09 22:50:07 +02:00