mirror of
https://github.com/Patiun/com.gregkilmer.www.git
synced 2026-11-07 19:58:24 +00:00
754c6482be
- Dockerfile with a check target (typecheck and tests) and one image per service on a pinned Node 22.20 Alpine base, each with only its own production dependencies and a health check. - deploy/compose.yaml: gk-content, gk-admin and gk-site on homelab_network with no host ports, read-only root filesystems, no capabilities, the vault's Site folder mounted into the content service, and backup.dump=sqlite on it. - deploy/deploy.sh builds and checks the commit, restarts the stack, and goes back to the last good tag if it doesn't come up healthy; rollback.sh swaps tags. .gitea/workflows/deploy.yml runs it on a host runner on Cosmos. - docs/deploy.md runbook (settings, runner, mirror, NPM hosts, Turnstile, Healthchecks, backups, cutover) and the stack's inventory note in vault-kit. - Site: trusts X-Forwarded-Host/Proto for gregkilmer.com hosts so form posts pass Astro's origin check behind the proxy; rate limits read CF-Connecting-IP; site URL set for absolute links. - Content service: the held-change webhook carries a Discord-ready message; .env.example lists the core settings. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012aSbo2D1qP8cMFQCykf7kx
1.7 KiB
1.7 KiB
tags
| tags | ||
|---|---|---|
|
GregKilmer.com stack
The new GregKilmer.com: a content service that reads this folder's Site/ notes, a tailnet-only admin page, and the public site. Repo: github.com/Patiun/com.gregkilmer.www (mirrored to Gitea, deployed by Gitea Actions). Runbook: docs/deploy.md in the repo.
Containers
| Container | Role | Network | Host port |
|---|---|---|---|
gk-content |
Content service, sync jobs and MCP server | homelab_network | none |
gk-admin |
Admin page | homelab_network | none |
gk-site |
Public site | homelab_network | none |
- Compose:
/home/greg/homelab/gregkilmer/compose.yaml(copied from the repo'sdeploy/compose.yamlon each deploy) - Settings and secrets:
/home/greg/homelab/gregkilmer/{.env,content.env,admin.env,site.env}(600)
Data and backups
/home/greg/homelab/gregkilmer/data/content/content.db: note history, review queue, saved inquiries and orders, sync cache. Labelbackup.dump=sqliteongk-content./home/greg/homelab/gregkilmer/data/content/submissions/: form attachments, covered by Kopia.- The vault's
Site/folder is mounted read-write intogk-content, which writes accepted API and MCP changes back as notes.
Access
admin.gregkilmer.comtogk-admin:4320: Tailnet only.content.gregkilmer.comtogk-content:4310(API and/mcp): Tailnet only.beta.gregkilmer.comtogk-site:4321: Tailnet only until cutover. After cutover,gregkilmer.comis public through Cloudflare.
Health
- Healthchecks: the content service's full scan every 5 minutes, plus one check per sync job.
- A Discord webhook is sent whenever a change is held for review.
- Each container has a Docker health check on
/health(site:/).