Living documentation for the conventions and scaffolding defaults I use across every project I maintain. If you're contributing to one of those projects — as a human or as an AI coding agent — this repo is required reading.
A single place where decisions about workspace layout, deployment, infrastructure, service hardening, firewall rules, SELinux posture, and similar cross-cutting concerns are written down once and reused everywhere. Rather than re-deriving (or forgetting) the same defaults in every repo, each project points here and inherits them.
The goal is boring consistency: the same crate layout, the same deploy flow, the same systemd hardening, the same firewalld approach across every app I own, so that context switching between projects doesn't mean re-learning the shape of things.
generic.md — the baseline. Applies to every project unless that project explicitly overrides a section. Covers workspace layout, separation of concerns, configuration, secrets, deployment, service accounts, firewalld, SELinux, and code quality.deployment-gitea-actions.md — CI-driven deployment via a Gitea Actions workflow, as an alternative to the deploy.sh + manifest.yml flow in generic.md §7. The workflow is the source of infra truth; the runner deploys as a scoped gitea_ci user.internal-tls.md — provisioning and renewing per-service internal TLS certs (<service>.internal) for mesh-only nginx vhosts, extending the PKI conventions in generic.md §11.external-tls.md — publicly-trusted certs for WAN-facing vhosts via Let's Encrypt (certbot, Cloudflare DNS-01, ECDSA). The external counterpart to internal-tls.md.reverse-proxies.md — the per-site nginx edge proxies (oolon for kosherinata, hanzalova.internal for the office), what sits behind each, the public-vs-mesh access paths, and the per-vhost cert choice. Names the topology behind generic.md §11 Ingress.More files will appear here over time as guidance that's more specific than generic.md gets extracted — per-stack, per-deployment-target, or per-problem-domain documents. When a project needs guidance that isn't generic, it belongs in a new file here, not buried in one project's repo.
generic.md and follow it. Deviations should be deliberate and noted in that project's own README.generic.md first. The project's local CLAUDE.md or README.md will note any intentional deviations; everything else defaults to what's here.This is living documentation, not a spec frozen at a point in time. When a convention changes — because something broke, because a better pattern emerged, or because the infrastructure itself changed — the update lands here first, and projects catch up on their next touch.
If you find guidance here that contradicts what's actually running in production, the guidance is wrong. Open an issue or a PR.
15 activities
135601d docs(generic): refresh GPU/inference for the helexa neuron+cortex stack88357d9 docs(external-tls): generalize certbot contact email to <domain> placeholder746c55f docs: add reverse-proxy topology + external-TLS conventions200c41b docs: add CI deployment and internal-TLS guidance, cross-reference from generic8365246 docs(generic): document GPU inference hosts and planned cortex proxyc5ea03b docs(generic): document default Postgres cluster and cert-CN mapping flow2bc1a08 docs(generic): document TLS cert paths, rotation cadence, and reload patterna0de8ba docs(generic): keep CLAUDE.md/AGENTS.md uppercase, allow autonomous editsc644e7b docs: adopt lowercase readme.md conventioneaf2398 docs(generic): document migration immutability and sequential versioninge9447f5 docs(generic): note Postgres MCP server availability for agentic contributors4f66508 docs(generic): document Gitea (git.lair.cafe) as default source host4881720 docs(generic): clarify frontend directory naming is not fixed to "web/"e67f9d7 docs(generic): add commit conventions and autonomous-commit guidance3261b32 docs: add README explaining the repo's purpose and usage9db5743 docs(generic): reflect actual firewalld zone usage (default zone only)ecfefa6 docs(generic): add Fedora deployment sections for sysusers, firewalld, and SELinux