--- tags: [homelab, service] --- # 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`, cloned to `/home/greg/homelab/gregkilmer/repo` and deployed by the `gk-deploy.timer` systemd timer when master moves. 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's `deploy/compose.yaml` on 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. Label `backup.dump=sqlite` on `gk-content`. - `/home/greg/homelab/gregkilmer/data/content/submissions/`: form attachments, covered by Kopia. - The vault's `Site/` folder is mounted read-write into `gk-content`, which writes accepted API and MCP changes back as notes. ## Access - `admin.gregkilmer.com` to `gk-admin:4320`: Tailnet only. - `content.gregkilmer.com` to `gk-content:4310` (API and `/mcp`): Tailnet only. - `beta.gregkilmer.com` to `gk-site:4321`: Tailnet only until cutover. After cutover, `gregkilmer.com` is 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: `/`).