diff --git a/src/app/homelab/page.tsx b/src/app/homelab/page.tsx index 3e4d8507..0b6f7c46 100644 --- a/src/app/homelab/page.tsx +++ b/src/app/homelab/page.tsx @@ -55,6 +55,12 @@ const adrs = [ "One Postgres instance, multiple databases. One Redis instance. A single init script provisions all schemas on first run.", why: "Avoids 15 separate DB containers. Reduces RAM overhead significantly. All productivity apps share the same LXC (10.2.0.60).", }, + { + title: "Gitea CI/CD: Self-hosted runner with container build + SSH rsync deploy", + decision: + "act_runner v0.3.1 on Gitea LXC (10.99.0.22). Push to dev → node:22-alpine container builds Next.js → rsync out/ to Portfolio LXC → SSH docker rebuild. Runner WorkingDirectory=/opt/docker/gitea. Feature branches for daily work; merge to dev to deploy.", + why: "Keeps the full pipeline internal — no GitHub Actions, no external runners. Build runs in an isolated Alpine container so the Gitea LXC isn't polluted. Portfolio LXC (10.99.0.23) just serves pre-built static files via nginx. Runner must be registered with the LXC IP (10.99.0.22:3000), not localhost — containers can't resolve localhost to the host. The .runner file must live in WorkingDirectory or the daemon crashes on start.", + }, ]; export default function HomelabPage() {