summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
13 daysfeat(gitsyncer): enable sync_codeberg and add 49 repos to sync listHEADmasterPaul Buetow
2026-07-22update promptsPaul Buetow
2026-07-21fix(gitsyncer): correct f1 backup host/path to paul@f1.lan:/srv/data/enc/gitPaul Buetow
2026-07-21feat(gitsyncer): add paul@f1 backup location for all reposPaul Buetow
2026-07-20f3s-storage skill: zrepl liveness canary also writes unix epoch into filePaul Buetow
f0 cron now does 'touch ... && date +%s > /data/nfs/nfs.LIVE_CHECK' so the file content (epoch) plus its mtime both cross to f1's read-only sink via zrepl. Documented the cron % escaping gotcha and the f1 freshness check (seconds between f1's clock and the epoch in the file). Stalled if lag exceeds ~10-11 min.
2026-07-20f3s-storage skill: document zrepl replication liveness check (f0 cron canary)Paul Buetow
f0 root crontab touches /data/nfs/nfs.LIVE_CHECK every 10 min, gated on /data/nfs/nfs.DO_NOT_REMOVE. zrepl replicates zdata/enc/nfsdata to f1's read-only sink every minute, so the file's mtime on f1 reveals replication freshness (stalled if >~10-11 min behind). Added to zrepl.md and the hub SKILL.md reference bullet.
2026-07-20f3s-storage skill: backups.md — reflect reality (no zdata daily S3 cron)Paul Buetow
The only live S3 offsite backup is the zusb quarterly workflow, which backs up zusb/data/* (not the f-host zdata pool). Verified no aws/s3/ backup cron in root crontab on any f-host and no pre-existing /root/.aws. zdata redundancy is via zrepl replication, not S3. Also corrected the aws-credentials caveat (symlink is deliberately dangling on non-zusb hosts until zusb is replugged there) and noted the 2026-07-20 install across all f-hosts.
2026-07-20f3s-storage skill: document AWS CLI setup for S3 backup uploadsPaul Buetow
How to install awscli on a FreeBSD host (py39 on 14.x, py312 on 15.x) and wire /root/.aws with a credentials symlink to /opt/snonux/secrets/aws.credentials, which rides on the zusb pool. Covers both the zdata daily-cron S3 backup and the zusb quarterly backup. Cross-linked from the zusb note in usb-keys.md.
2026-07-20f3s-storage skill: document the zusb removable quarterly backup poolPaul Buetow
zusb is a 4-disk raidz2 USB-SATA pool used as offline backup storage, loaded ~once per quarter. Migrated from t450 to the f3s USB-key scheme: zusb/data/enc rekeyed to a raw key on /keys/zusb.key, scripts on all f-hosts. Note added to usb-keys.md and the hub SKILL.md.
2026-07-20add sideload scriptPaul Buetow
2026-07-19this is now a scriptPaul Buetow
2026-07-18skills: f3s-rocky-vm-setup — drop overview.md intro duplicated from SKILL.mdPaul Buetow
skill-maintenance audit found overview.md repeated the SKILL.md intro/role sentence verbatim (a DRY-within-skill violation). Replace it with a one-line pointer to SKILL.md so the role/IP details have a single canonical home and the reference focuses on setup detail. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18hexai: switch ollama models (minimax-m2.1, qwen3-coder:480b)Paul Buetow
Set the main ollama model to minimax-m2.1:cloud and the in-editor completion model to qwen3-coder:480b-cloud (temperature 0.0 for deterministic completion), and drop the commented-out alternative-model lists. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18skills: rename pkgrepo -> f3s-pkgrepo and rocky-vm-setup -> f3s-rocky-vm-setupPaul Buetow
Extend the f3s- prefix to the two remaining f3s-scoped siblings so the whole homelab family groups together. Both are f3s-specific: pkgrepo IS pkgrepo.f3s.buetow.org, and rocky-vm-setup documents the 'rocky' VM on the f3s host f3. - git mv both skill dirs (history preserved); update name: frontmatter; add the 'Part of the f3s homelab skill family' note to both descriptions. - Rewrite every reference to the *skills*: backtick mentions (`pkgrepo` -> `f3s-pkgrepo`, `rocky-vm-setup` -> `f3s-rocky-vm-setup`), markdown cross-links (../pkgrepo/ -> ../f3s-pkgrepo/, etc.), the f3s hub Related-skills block and description, and skill-maintenance's index-pattern example. - Left references to the package REPOSITORY (pkgrepo.f3s.buetow.org, 'the custom pkgrepo') unchanged — those name a service, not the skill. - Verified all 114 relative links resolve. Plan doc updated to record the rename. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18skills: split f3s into six focused sibling skills (index pattern)Paul Buetow
Execute plans/f3s-skill-split-plan.md. Carve the oversized f3s skill into six f3s-prefixed siblings so each loads on its own triggers, and slim f3s to a hub (38 reference files -> 10; 119 -> 73 lines): - f3s-storage ZFS/zrepl/CARP/NFS-stunnel, nfs-mount-monitor, backups - f3s-k3s cluster install, off-LAN access, ingress, etcd, r-node Rex - f3s-observability Prometheus/Alloy/Loki/Tempo, FreeBSD node_exporter - f3s-workloads Immich, Garage, Player, yChat, goprecords/uptimed - f3s-raspberry-pi pi0/pi1 NetBSD static site, pi2/pi3 Pi-hole/LAN DNS - f3s-dtail dserver deployment/ops (SSH 2222) f3s hub keeps the master Host-IP table, physical hosts, bhyve, WireGuard mesh, and off-LAN access as the canonical inward-pointing context, plus a Related skills block. Applies skill-maintenance best practices: fixes the three inlined SKILL.md duplications (Pi/webserver, DTail) by moving prose to one canonical home and keeping each new SKILL.md a slim index that points to its references rather than re-inlining them. All cross-skill links rewritten to ../../<skill>/references/ form (incl. inbound links from pkgrepo and rocky-vm-setup, and two pre-existing broken links); verified all 112 relative links resolve. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18plans: lock in f3s- prefix for all f3s skill carve-outsPaul Buetow
User confirmed every carve-out keeps the f3s- prefix (f3s-storage, f3s-k3s, f3s-workloads, f3s-raspberry-pi, f3s-observability, f3s-dtail) so they group together beside the f3s skill. Removes the open unprefixed/homelab- alternative; clarifies it is a prefix, not a trailing suffix. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18plans: record actual Immich 3.0.3 upgrade + resolved [VERIFY] findingsPaul Buetow
Mark the runbook COMPLETED and add an execution record: final versions/tags, data verification, and the findings the pre-written plan could not confirm (ArgoCD in ns cicd; argocd-apps/services/*.yaml applied via kubectl apply not GitOps-synced; clean shared_preload_libraries swap; v2.7.5 auto-reindex; deviceId/deviceAssetId removal). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18immich-upload: drop deviceAssetId/deviceId fields for Immich 3.xPaul Buetow
Immich 3.x removed the deviceAssetId/deviceId columns (migration DropDeviceIdAndDeviceAssetId). The /api/assets endpoint still tolerates but ignores them; removed for correctness/future-proofing. Duplicate detection continues via the x-immich-checksum header and the bulk-upload-check pre-pass (verified end-to-end against the live v3.0.3 server: 201 created, 200 duplicate). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18plans: add Immich 3.x upgrade runbook (plan only)Paul Buetow
Written upgrade runbook for moving the f3s Immich install from v2.7.5 to 3.x. Documents current state, mandatory ZFS-snapshot + pg_dumpall backups, the pgvecto.rs -> VectorChord migration required before 3.x, step-by-step two-stage procedure, verification, and rollback. No live changes were made. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18plans: add f3s skill split plan (us0)Paul Buetow
Plan to sub-divide the oversized f3s skill (38 references, ~4846 lines) into six focused sibling skills (f3s-storage, f3s-k3s, f3s-observability, f3s-raspberry-pi, f3s-workloads, f3s-dtail), leaving f3s as a slim hub index. Documents exact file moves, DRY canonical homes, cross-link fixes, execution order, and risks. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18tmux: add Prefix+X to kill current session and attach to nextPaul Buetow
Bind Prefix+X to capture the current session name, switch the client to the next available session (switch-client -n), then kill the old session. Switching before killing keeps the client attached instead of detaching it. Placed next to the other session-management bindings and commented with the ordering rationale. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18update promptsPaul Buetow
2026-07-18immich-export: export second-quarter imagesPaul Buetow
2026-07-13betterPaul Buetow
2026-07-12scripts: stabilize-video — delete original .MOV after successful stabilizePaul Buetow
The source .MOV is removed only when the stabilized output decodes cleanly in the verify pass, so a failed encode never loses the original.
2026-07-12scripts: stabilize-video — fix EXIT trap unbound var under set -uPaul Buetow
trf_dir was declared local in main(), so the EXIT trap referencing it fired after main returned — under set -u that became an unbound variable error and the script exited non-zero even though stabilization succeeded. Hoist trf_dir to script scope and guard the trap.
2026-07-12scripts: stabilize-video — 2-pass vidstab + VAAPI HEVC for Fujifilm .MOV clipsPaul Buetow
Reusable wrapper around the workflow from the fujifilm-video-stabilization skill: parallel pass-1 motion detection, serial pass-2 stabilize+sharpen+encode on Intel VAAPI (software libx265 fallback), skip-existing outputs, and a decode/size verification pass at the end. Usage: stabilize-video [DIR] # all *.MOV in DIR stabilize-video ~/Videos stabilize-video clip1.MOV clip2.MOV # explicit files Outputs stabilised-<base>.mp4 next to each source.
2026-07-10Import Fujifilm RAW and video filesPaul Buetow
2026-07-10skills: pkgrepo — FreeBSD persistent host key, OpenBSD rc_bg, 2026-07-10 statePaul Buetow
- FreeBSD: host key now persistent in /var/db/dserver (cleanvar purged the old /var/run location every boot); document the migrate-first upgrade order for pre-2026-07-10 packages and that the rc.d precmd now repopulates the key cache on every start (manual re-run only needed when authorized_keys changed without a restart) - OpenBSD: rc.d uses rc_bg=YES + plain rc_cmd since 2026-07-10 (the old 'rc_cmd $1 &' hid rc_pre failures from rcctl); note that the FREEBSD_HOST=f0.wg0 override applies to all dtail-* targets - NetBSD: drop the outdated "unlike FreeBSD" volatile-key comparison - Verification table: f0-f2 and fishfinger reverified 2026-07-10 with host key identity preserved; f3 unreachable (still on old package), blowfish still on the older package Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10skills: pkgrepo — fix OpenBSD upgrade doc (fec2f9d attribution, restart step)Paul Buetow
fec2f9d is the dtail server-side fix (absolute CacheDir resolution independent of CWD), not a FreeBSD template bug — the FreeBSD template never used relative paths. Also make the pre-2026-07-10 upgrade procedure an explicit ordered list: migrate the host key first, then reinstall, then rcctl restart — neither pkg_add nor Rex restarts a running daemon, and after a reboot the old host key is already gone. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10skills: pkgrepo — OpenBSD dserver absolute paths, persistent host keyPaul Buetow
Document the 2026-07-10 OpenBSD dtail package changes: absolute CacheDir/HostKeyFile, host key migration to /var/db/dserver, rc_pre key-cache refresh, same-version reinstall procedure, and the f0.wg0 Makefile override needed from the WireGuard VPN. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09skills: pkgrepo — NetBSD dserver host key now persistent, user-creation gotchaPaul Buetow
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09add netbsdPaul Buetow
2026-07-09skills: f3s dserver.d — add NetBSD pi0/pi1 build/deploy pointerPaul Buetow
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09skills: pkgrepo + f3s — NetBSD DTail pipeline and pi0/pi1 deploymentPaul Buetow
pi0/pi1 (NetBSD 10.1 aarch64) now run dserver from the custom pkgrepo: - pkgrepo: NetBSD repo layout (netbsd/10.1/packages/aarch64, unsigned, pkg_summary.gz), client setup via pkg_add URL, make dtail-netbsd pipeline (cross-compile on Linux, pkg_create natively on pi0), manual packaging reference, install/update steps + gotchas, verification state 2026-07-09 - f3s: pi0/pi1 host-role rows, rc.d service list + npf port 2222, removed stale 'pi0/pi1 do not run DTail' claims Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08update promptsPaul Buetow
2026-07-08update promptsPaul Buetow
2026-07-06fixPaul Buetow
2026-07-03f3s: add ychat deployment referencePaul Buetow
Amp-Thread-ID: https://ampcode.com/threads/T-019f299f-7596-73b6-ba71-0f71fcd3c131 Co-authored-by: Amp <amp@ampcode.com>
2026-07-03sync skills: wireguardmeshgenerator now has full NetBSD supportPaul Buetow
Updates the pi0/pi1 WireGuard docs to reflect that wireguardmeshgenerator generates and installs their tun0.conf + rc.d/wireguard script directly now, closing the previously-documented gap where both nodes' configs were manually-maintained exceptions outside the generator. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-03sync skills: drop Rocky->NetBSD migration narrative from pi0/pi1 docsPaul Buetow
Trims dates, "reinstalled"/"converted"/"validated twice" framing, and forward-looking "next conversion" language from the f3s/pkgrepo skill docs. Keeps only current-state reference material: pi0 and pi1 run NetBSD, and how their services (WireGuard, bozohttpd, uptimed, npf, content sync, goprecords) are installed and configured. bootstrap-netbsd-pi.md is reframed from a migration runbook into a plain service-reference doc. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-03sync skills: pi0/pi1 NetBSD migration docs, new bootstrap-netbsd-pi runbookPaul Buetow
pi0 and pi1 were both reinstalled from Rocky Linux to NetBSD 10.1 this session. Adds the reusable conversion runbook (bootstrap-netbsd-pi.md) and updates every f3s/pkgrepo reference that assumed pi0/pi1 were still Rocky (WireGuard setup, DTail client lists, pkgrepo URLs/build host, goprecords automation, wol-f3s doas behavior), plus documents the bugs found along the way: no native wg(4) on this platform, uptimed's dual-file read bug, bozohttpd's -V fallback redirect leaking the system hostname. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-02Remove hexai-tmux-edit referencesPaul Buetow
hexai dropped the tmux-edit popup editor feature; drop the tmux keybinding, update-tool lists, and the orphaned tmux-edit-send script that duplicated it but was no longer bound to anything. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-06-29Merge branch 'master' of ssh://r0:30022/repos/dotfilesPaul Buetow
2026-06-29sync skills: add fujifilm-video-stabilization skill for X100VPaul Buetow
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28sync skills: add skill-maintenance skill + shared DRY referencesPaul Buetow
- New skill: skill-maintenance (SKILL.md + 4 references: best-practices, dry-across-skills, sub-division, audit-checklist) encoding the Agent Skills spec rules, cross-skill DRY, and the f3s/rocky-vm-setup sub-division pattern. - agent-task-management/references/verification-honesty.md: canonical home for the general verification-honesty discipline (linked from go-best-practices). - blog-writing-style/references/gemtext-conventions.md: shared foo.zone gemtext conventions (linked from compose-blog-post, update-blog-post, blog-writing-style). - blog-writing-style/references/patterns-and-examples.md: foo.zone LLM-pattern catalog + rewrite examples extracted from blog-writing-style SKILL.md. - f3s/references/{console-jetkvm-shutdown,shelly-plug}.md: referenced by f3s/SKILL.md (previously untracked).
2026-06-28sharablePaul Buetow
2026-06-28UpdatePaul Buetow
2026-06-28f3s: add console-jetkvm-shutdown and Shelly Plug referencesPaul Buetow
2026-06-28home-backup: include .config/google-chrome againPaul Buetow
Amp-Thread-ID: https://ampcode.com/threads/T-019f0cc8-1a8f-71ab-8a1c-914d7cdb055a Co-authored-by: Amp <amp@ampcode.com>