install-caddy.sh: symlink /etc/caddy/Caddyfile to repo + enable caddy.service on kai-server #53

Open
opened 2026-05-23 20:54:34 +00:00 by coilysiren · 0 comments
Owner

Originally filed by @coilysiren on 2026-05-13T22:43:44Z - https://github.com/coilysiren/infrastructure/issues/140

Problem

On kai-server today:

  • /etc/caddy/Caddyfile is the 124-byte Debian default from Apr 12 2025, not a symlink to ~/projects/coilysiren/infrastructure/caddy/Caddyfile.
  • caddy.service is inactive (dead) and disabled.

Effect: api.coilysiren.me reverse proxy, the audit dashboard on :8082, and the http://kai-server tailnet shortcuts (api, eco-jobs-tracker, eco-mcp, galaxy-gen, plus future #129 regens) are all not served. Pulling infrastructure and reloading caddy is a no-op until the installed config points at the repo.

Scope

New scripts/install-caddy.sh, in the same shape as scripts/install-fdr-remake.sh and scripts/install-repo-recall.sh:

  • Idempotent. Re-run to upgrade. FORCE=1 to reapply even when present.
  • apt-get install -y caddy if missing (via the Cloudsmith repo, the standard Caddy install path on Debian/Ubuntu).
  • Replace /etc/caddy/Caddyfile with a symlink to ${INFRA_SRC}/caddy/Caddyfile (back up the original to /etc/caddy/Caddyfile.dist on first run).
  • caddy validate --config /etc/caddy/Caddyfile before enabling.
  • systemctl enable --now caddy.service.
  • Print the next commands: git pull + sudo systemctl reload caddy for future updates.
  • Does not handle TLS for api.coilysiren.me. Public DNS / cert-bot path is out of scope for this issue; this only stands up the service and tailnet-internal serves.

Out of scope

  • Auto-reload on git pull (separate issue, blocked on #130 systemd unit logging + monitoring prereq).
  • Public TLS for api.coilysiren.me. File a follow-up if needed.
  • Mac caddy install (covered by #134).

Refs

  • #129 (caddy-shortcuts framework, generates caddy/sites/*.caddy)
  • #132 (sites-manual/ pattern + 4 seed shortcuts)
  • #134 (Mac dashboard, separate caddy install)
_Originally filed by @coilysiren on 2026-05-13T22:43:44Z - [https://github.com/coilysiren/infrastructure/issues/140](https://github.com/coilysiren/infrastructure/issues/140)_ ## Problem On kai-server today: - `/etc/caddy/Caddyfile` is the 124-byte Debian default from `Apr 12 2025`, not a symlink to `~/projects/coilysiren/infrastructure/caddy/Caddyfile`. - `caddy.service` is `inactive (dead)` and `disabled`. Effect: `api.coilysiren.me` reverse proxy, the audit dashboard on `:8082`, and the `http://kai-server` tailnet shortcuts (`api`, `eco-jobs-tracker`, `eco-mcp`, `galaxy-gen`, plus future #129 regens) are all not served. Pulling `infrastructure` and reloading caddy is a no-op until the installed config points at the repo. ## Scope New `scripts/install-caddy.sh`, in the same shape as `scripts/install-fdr-remake.sh` and `scripts/install-repo-recall.sh`: - Idempotent. Re-run to upgrade. `FORCE=1` to reapply even when present. - `apt-get install -y caddy` if missing (via the Cloudsmith repo, the standard Caddy install path on Debian/Ubuntu). - Replace `/etc/caddy/Caddyfile` with a symlink to `${INFRA_SRC}/caddy/Caddyfile` (back up the original to `/etc/caddy/Caddyfile.dist` on first run). - `caddy validate --config /etc/caddy/Caddyfile` before enabling. - `systemctl enable --now caddy.service`. - Print the next commands: `git pull` + `sudo systemctl reload caddy` for future updates. - Does not handle TLS for `api.coilysiren.me`. Public DNS / cert-bot path is out of scope for this issue; this only stands up the service and tailnet-internal serves. ## Out of scope - Auto-reload on git pull (separate issue, blocked on #130 systemd unit logging + monitoring prereq). - Public TLS for `api.coilysiren.me`. File a follow-up if needed. - Mac caddy install (covered by #134). ## Refs - #129 (caddy-shortcuts framework, generates `caddy/sites/*.caddy`) - #132 (sites-manual/ pattern + 4 seed shortcuts) - #134 (Mac dashboard, separate caddy install)
coilysiren added
P3
and removed
P2
labels 2026-05-31 07:00:49 +00:00
Sign in to join this conversation.
No labels
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/infrastructure#53
No description provided.