docs: generic ops runbook and knowledge from production operations - #37
Open
montoyaedu wants to merge 3 commits into
Open
docs: generic ops runbook and knowledge from production operations#37montoyaedu wants to merge 3 commits into
montoyaedu wants to merge 3 commits into
Conversation
Lessons from running easy-proxy in production, written as tool knowledge with no deployment-specific details (those live in a private ops repo): - SERVER_RUNBOOK.md rewritten as a generic runbook: host layout, versioning EASY_DOMAINS_DIR (yes) vs EASY_LETSENCRYPT_DIR (never), choosing the ACME challenge by DNS provider, HTTP-01 webroot for providers without a certbot plugin (in-place lineage conversion), deploy hook + systemd timer renewal, connecting app stacks to the edge network, troubleshooting. - Knowledge base: templates lack WebSocket/ACME support; Compose aliases collide on a shared edge network; explicit -f skips the override file; never put the letsencrypt dir under git; lineage conversion to HTTP-01; renewal hook+timer; orphan lineages fail certbot renew; IONOS key format. Corrected the wildcard decision: certbot-dns-ionos does not follow CNAME delegation, and /var/www/certbot is not served by any template. - STATE.md: tool state only; roadmap gains webroot/renew/doctor items. - CLAUDE.md: rule that the public repo holds only generic knowledge. - Fix stale ~/ethiclab/lab/easy-proxy paths in CLAUDE.md, AGENTS.md, UC1. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UjwTpRz63tgAMuiPpthK1B
…entials, renew random sleep Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UjwTpRz63tgAMuiPpthK1B
…ypt dir permissions Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UjwTpRz63tgAMuiPpthK1B
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Lessons from running easy-proxy in production, written as tool knowledge. There are no deployment-specific details: hostnames, IPs, site/container names and host paths are kept out of the public repo. A new rule in
CLAUDE.mdmakes this separation explicit.SERVER_RUNBOOK.mdis rewritten as a generic runbook. It covers:EASY_DOMAINS_DIR(yes) vsEASY_LETSENCRYPT_DIR(never);Knowledge base (
.beads/knowledge/) gains these facts:-fskipsdocker-compose.override.yml;certbot renew;It also corrects the wildcard decision:
certbot-dns-ionosdoes not follow CNAME delegation (zone lookup is by suffix match on the cert domain), and/var/www/certbotis not served by any template.STATE.mdnow covers tool state only. The roadmap gainscertbot-webroot,renew, WebSocket/ACME templates, anddoctorchecks.Fixes stale
~/ethiclab/lab/easy-proxypaths inCLAUDE.md,AGENTS.mdandUC1_LOCAL_SSL_SETUP.md.Docs and knowledge base only, no code changes.
Test plan
bats test/: 55/55🤖 Generated with Claude Code
https://claude.ai/code/session_01UjwTpRz63tgAMuiPpthK1B