docs+ops: rewrite CLAUDE.md, skills, runner for post-split topology

Post-monolith documentation and ops cleanup:

- CLAUDE.md rewritten end-to-end. Documents the 11 Portainer-managed stacks
  + raw-compose management plane, the single shared `edge` network, the
  SSD-vs-ZFS bind-mount tiering, the four deployment channels (git push
  for app stacks, runner for Caddyfile, apply-compose.ps1 for mgmt plane /
  Caddyfile / vault), and the fact that the repo is now canonical.
- homelab-apply skill rewritten for the new channels — no more `dc up -d`,
  no more monolith.
- homelab-ssh skill rewritten — no `dc` alias, plain `docker` against
  container names; per-stack compose ops via /data/compose/<id>/...
- homelab-sync skill + sync-prod.ps1 retired. The repo is canonical now;
  pulling from prod is the wrong direction.
- .github/workflows/deploy.yml: drop the dc up -d steps, gate on
  paths:[Caddyfile, .github/workflows/deploy.yml], reload caddy via
  `docker exec` (no longer through compose).
- apply-compose.ps1: drop -Compose and -DevStack flags; -Caddy now reloads
  via `docker exec caddy` (Caddy is in its own Portainer stack now).

No live container is touched by this commit. The runner workflow is
currently disabled at the repo level; re-enabling it makes Caddyfile pushes
auto-deploy again.
This commit is contained in:
ginnoir
2026-06-04 18:17:16 -05:00
parent cee43aa733
commit f995014d48
7 changed files with 221 additions and 221 deletions
+12 -13
View File
@@ -1,12 +1,21 @@
name: Deploy to valhalla
# Post-split deploy. The application stacks (foundry, media, notify, monitoring,
# remote, owncloud, resume, famapp, authentik, dev) live under stacks/<domain>/
# and are deployed by Portainer git polling — the runner does NOT touch them.
# Caddy lives in its own Portainer git stack (stacks/proxy/) and is likewise
# deployed by Portainer; this workflow only pushes the Caddyfile and triggers
# a hot reload on the running Caddy container.
on:
push:
branches: [main]
paths:
- Caddyfile
- .github/workflows/deploy.yml
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
COMPOSE: docker compose -f /valhalla-lab/docker-compose.yml --env-file /valhalla-lab/.env
jobs:
deploy:
@@ -15,17 +24,7 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: Push .env + compose
run: |
cp .env /valhalla-lab/.env
cp docker-compose.yml /valhalla-lab/docker-compose.yml
- name: Pull and apply compose
run: |
$COMPOSE pull
$COMPOSE up -d
- name: Reload Caddyfile
- name: Push Caddyfile and reload Caddy
run: |
cp Caddyfile /config/caddy/Caddyfile
$COMPOSE exec -T caddy caddy reload --config /etc/caddy/Caddyfile
docker exec caddy caddy reload --config /etc/caddy/Caddyfile