Appendix: Post-Deploy TODOs
Post-Deploy TODOs
Items to circle back to — the P16g is operational but incomplete:
P0 (Next Session)
-
Re-issue Vault EAP-TLS cert with CN=
modestus-p16g(done Apr 3) -
Update nmcli WiFi identity to
modestus-p16g.inside.domusdigitalis.dev(done Apr 3) -
Install certs on P16g filesystem —
/etc/ssl/certs/modestus-p16g-eaptls.pem(done Apr 3) -
Re-encrypt SSH config with
modestus-p16gentry + corrected Razer IP (done Apr 3) -
Set up gocryptfs vault —
gcvaultdeployed, 4 vaults, credentials mounted, Claude Code + gh symlinked (done Apr 3) -
Claude Code installed + OAuth authenticated (done Apr 3)
-
OpenCode installed + stowed (done Apr 3)
-
pinentry-auto deployed — SSH gets curses, desktop gets Qt (done Apr 3)
-
gpg-connect-agent updatestartupttyadded to.zshrcfor SSH sessions (done Apr 3) -
Mass t16g→p16g rename across all 18 deploy partials (done Apr 3)
-
Configure Vault SSH cert for machine-to-machine auth — blocked by VLAN anti-pivot segmentation
P0 (Immediate — Security)
-
SEC-001: Install AppArmor —
sudo pacman -S apparmor(done Apr 5) -
SEC-001: Update boot params on all 3 entries —
lsm=…apparmor,bpf apparmor=1 security=apparmor(done Apr 5) -
SEC-001: Restore missing
acpi_mask_gpe=0x6Eon arch-fallback.conf + arch-lts.conf (done Apr 5) -
SEC-001: Enable
apparmor.service(done Apr 5) -
SEC-001: Reboot and verify —
cat /sys/kernel/security/lsm,aa-enabled,sudo aa-status(now Phase 12) -
SEC-001: Phase 2 — complain-mode baseline (2-3 days normal usage) (now Phase 12)
-
SEC-001: Phase 3 — enforce profiles for browsers, node/npm, Docker with credential store denies (now Phase 12)
-
SEC-001: Phase 4 — Docker AppArmor integration verification (now Phase 12)
P1 (This Week)
-
Phase 9: Claude Code installed + authenticated (done Apr 3)
-
Phase 9: OpenCode installed + stowed (done Apr 3)
-
Phase 9: Stow
claudepackage —~/.claude/settings.json+ hooks now symlinked (done Apr 3) -
Phase 9: Build
domus-antora-uiUI bundle —cdinto repo,npm install && npx gulp bundle(done Apr 3) -
Phase 9: Install Docker for Kroki —
pacman -S docker, enable service,usermod -aG docker,newgrp docker(done Apr 3) -
Phase 9: Install
lsof—sudo pacman -S lsof(done Apr 3) -
Phase 9: Verify
dots-quantum/setupscript includesclaudein stow list — prevent recurrence on future machines -
Phase 9: Verify Cloudflare Pages deployments trigger from P16g pushes — check CF dashboard after next push
-
Phase 9: Deploy
.git/hooks/pre-commiton P16g — copy from Razer or implementcore.hooksPathsolution -
Phase 9: Clone all remaining domus-* repos (15 spoke repos + project repos)
-
Phase 9: Run
npm installin each cloned domus-* repo (node_modules not tracked) -
Phase 9: Set up multi-remote push (GitHub + GitLab + Gitea)
-
Phase 9: Deploy git pre-commit hook for AsciiDoc validation — three options under consideration:
-
Option A:
core.hooksPath = ~/.config/git/hooksin dots-quantum.gitconfig— one stow deploys globally,makefails harmlessly in non-domus repos -
Option B:
make install-hooksMakefile target per domus repo — surgical but requires running after every clone -
Option C: Hybrid —
core.hooksPath+ smart dispatch (check for Makefile/Antora before runningmake) -
Existing hook at
.git/hooks/pre-commiton Razer runs fullmake+ parses JSON warnings — works but not portable (.git/hooks/never transfers)
-
-
Phase 9: aerc email configuration validation
-
Phase 10: Install Ollama, configure bind mount for model storage on
/home -
Phase 10: Pull models (qwen3-coder:30b, qwen2.5-coder:32b, qwen2.5-coder:14b)
-
Phase 10: Create custom models (domus-chat-v3, quick)
-
Phase 10: Deploy ollama-local FastAPI service
-
Phase 11: Run full verification checklist
-
Phase 11: Take btrfs clean-state snapshot
-
Phase 12: UFW firewall rules + SSH hardening
-
Test Hyprland display scaling on 3.2K OLED
-
Pair Bluetooth: Kinesis Advantage 360 Pro, Galaxy Buds3 Pro
-
Fix
.cargo/envmissing warning (.zshenvsources it but cargo not installed via standalone)
P2 (When Needed)
-
Wired EAP-TLS (
Domus-Wired-EAP-TLS) — need cable + switch port (Phase 13) -
Pacman hook validation — trigger with next kernel update (Phase 13)
-
Resolve multiple nvim config situation (instrumentum-nvim vs domus-nvim)
-
ssh-agent persistence strategy (keychain, systemd user unit, or gpg-agent) (Phase 13)
-
Set up systemd timer for automated Borg backups (Phase 13)
-
TLP charge thresholds (START_CHARGE_THRESH_BAT0=40, STOP_CHARGE_THRESH_BAT0=80) (Phase 13)
-
Update all domus-captures docs from
t16gtop16g
Improvement Proposals
|
Proposals from ecosystem audit — 2026-04-04. For team review and prioritization. |
| Priority | Proposal | Rationale | Effort |
|---|---|---|---|
P2 |
Add lessons-learned summary (deployment anti-patterns) |
11 phases of real-world deployment surfaced recurring patterns (stow conflicts, boot order, network timing). A distilled anti-pattern guide prevents repeating mistakes on future machines. |
M |
P2 |
Create reusable checklist partial for future deployments |
The phase-by-phase structure is hardware-specific. Extract a generic post-install validation checklist that works across machines. |
M |
P3 |
Extract common patterns to arch-linux-fresh-setup |
Phases 3-5 and 8 (base system, bootloader, first boot, stow deployment) are not P16g-specific. These can become shared partials. |
L |