Context Manager Infrastructure Build — 2026-03-27¶
Overview¶
Extended the context-manager skill with a complete infrastructure stack: nightly Dreamhost backups, a synthesized knowledge base, and a password-protected static website at context.rootphi.net. This session spanned the full lifecycle from architecture planning through live deployment.
What Was Built¶
1. Dreamhost Backup System (Fully Operational)¶
- SSH key (
~/.ssh/claude_backup_key) — ed25519, passwordless access to Dreamhost - Backup script (
~/Documents/claude-context-backup.sh) — rsync over SSH, syncs only changed files - Scheduled task (
~/Library/LaunchAgents/com.rootphi.claude-context-backup.plist) — runs nightly at 10 PM via launchd - Dreamhost user:
claude_backuponiad1-shared-e1-11.dreamhost.com - Remote backup path:
/home/claude_backup/claude-context-backup/ - Verified working: Files confirmed on Dreamhost via SSH
2. Knowledge Base Synthesis (Content Created, Synthesis Logic in SKILL.md)¶
- knowledge-base/SYNTHESIS.md — High-level overview of Brian's AI toolkit
- knowledge-base/decisions-log.md — 5 decisions logged
- knowledge-base/action-items.md — 7 open items, 10 completed (updated throughout the day)
- knowledge-base/connections.md — Cross-project references
- knowledge-base/topics/ai-toolkit.md — First synthesized topic file
- Synthesis modes defined in SKILL.md: incremental (end-of-session), deep (weekly scheduled), on-demand
3. Static Website at context.rootphi.net (Deployed)¶
- Subdomain created in Dreamhost panel →
context.rootphi.net, assigned toclaude_backupuser - MkDocs + Material theme installed on Brian's Mac (
pip3 install mkdocs mkdocs-material) - Config file:
~/Documents/claude-context-mkdocs.yml(lives one level up from docs_dir due to MkDocs constraint) - Built site output:
~/Documents/claude-context-site/(generated, not manually edited) - Deploy script:
~/Documents/claude-context-deploy.sh— builds MkDocs, rsyncs to Dreamhost, pushes .htaccess/.htpasswd - Password protection:
.htaccess+.htpasswdin claude-context folder (username:brian) - Password reset script:
~/Documents/claude-context-reset-password.sh— interactive prompt, generates new hash, pushes to Dreamhost - Status: Fully deployed and verified. Password prompt works, site loads after login. SSL certificate pending (Let's Encrypt auto-provision).
4. Disaster Recovery Documentation¶
- SETUP-GUIDE.md updated with all new infrastructure: website deployment section, password reset instructions, corrected file paths
- Comprehensive enough to rebuild everything from scratch on a new Mac
5. SKILL.md Updates¶
- Added Knowledge Base Synthesis section (lines 281-384): three synthesis modes, topic file guidance, MkDocs site generation instructions
- NOT yet packaged as .skill file — Brian explicitly asked to wait ("If I have a couple more ideas for this skill, can we wait to install the latest?")
Key Decisions¶
- Local-first architecture: Mac is source of truth, Dreamhost is backup + web host
- MkDocs with Material theme: Chosen for static site generation (dark slate scheme, green palette, built-in search)
- Password protection via .htaccess: Simple, no database needed, reset script provided
- claude_backup user for both backup and website: Single SSH key handles both rsync targets
- Config file lives outside docs_dir:
claude-context-mkdocs.ymlis in~/Documents/(one level up) because MkDocs doesn't allow config file inside docs_dir - python3 -m mkdocs instead of bare
mkdocs: Standalone Python installer doesn't add pip scripts to PATH
Action Items¶
- [x] Wait for DNS propagation — Resolved; site is live
- [x] Verify site loads — Confirmed working with password prompt and knowledge base content
- [ ] SSL certificate — Dreamhost auto-provisions Let's Encrypt; may take up to a few hours (check status)
- [ ] Rotate exposed API keys — OpenAI and Google keys were visible in a terminal screenshot earlier (flagged but not yet rotated)
- [ ] Package final context-manager.skill — Brian wants to add more ideas before installing the latest version
- [ ] Set up weekly deep synthesis scheduled task — discussed but not yet created
- [x] Test context-manager skill in a new Cowork chat — Confirmed: skill appears in sidebar and triggers correctly
Errors Encountered & Solutions¶
| Problem | Solution |
|---|---|
xcode-select --install wouldn't complete |
Installed Python from python.org standalone installer, bypassing Xcode CLT entirely |
| Homebrew install failed (needed CLT) | Same — standalone Python installer was the workaround |
| SSH connection timeout on first attempt | Dreamhost SSH access was still activating; second attempt succeeded |
mkdocs: command not found |
pip3 installs to a path not on $PATH; fixed by using python3 -m mkdocs in deploy script |
| MkDocs: "docs_dir should not be parent of config" | Moved mkdocs.yml up one level to ~/Documents/claude-context-mkdocs.yml, set docs_dir: claude-context |
| Chrome MCP couldn't access Brian's logged-in Dreamhost session | Used switch_browser to connect to rootphi Chrome profile |
Files on Brian's Mac (Complete Inventory)¶
In ~/Documents/claude-context/ (the context system)¶
GLOBAL.md— Profile, preferences, projects, people_index.md— Master chat catalogSETUP-GUIDE.md— Disaster recovery doc (updated this session)index.md— MkDocs homepage.htaccess— Apache password protection config.htpasswd— Hashed password file.backup-log.txt— Nightly backup log.deploy-log.txt— Website deploy logmkdocs.yml— OLD config (superseded by ~/Documents/claude-context-mkdocs.yml)knowledge-base/— Synthesized knowledge fileschats/— Per-conversation bundles
In ~/Documents/ (scripts and config)¶
claude-context-backup.sh— Nightly backup scriptclaude-context-deploy.sh— Website build & deploy scriptclaude-context-reset-password.sh— Password reset utilityclaude-context-mkdocs.yml— MkDocs config (must live here, not inside claude-context/)com.rootphi.claude-context-backup.plist— Source copy of launchd schedule
In ~/Library/LaunchAgents/¶
com.rootphi.claude-context-backup.plist— Active launchd schedule (runs nightly 10 PM)
In ~/.ssh/¶
claude_backup_key— Private SSH key for Dreamhostclaude_backup_key.pub— Public SSH key (installed on Dreamhost)
Dreamhost Configuration¶
| Resource | Details |
|---|---|
| Host | iad1-shared-e1-11.dreamhost.com |
| User | claude_backup |
| Backup path | /home/claude_backup/claude-context-backup/ |
| Website path | /home/claude_backup/context.rootphi.net/ |
| SSH port | 22 |
| Auth | ed25519 key (~/.ssh/claude_backup_key) |
| Subdomain | context.rootphi.net (Shared Unlimited, Custom Setup) |
Tags: context-manager, infrastructure, dreamhost, mkdocs, backup, knowledge-base, website, deployment