Homelab
My self-hosted homelab — private network, previews, apps & an AI agent
Content last updated on August 2, 2026
Loading diagram…
Drag to pan · scroll to zoom · hover a node for details
User / Client
Network
Service / Ingress
CI/CD
Container
AI Agent / Bot
Infrastructure
- • Caddy as primary ingress, routing by subdomain
- • Tailscale overlay network for secure access
- • AdGuard DNS resolves the *.localight wildcard
- • All apps run as containers on a podman network
CI/CD & Previews
- • New PR in Forgejo triggers build → push image
- • Traefik routes *.app-previews.localight subdomains
- • Caddy routes *.app.localight to production apps
- • Previews converge back into the same workflow
AI & Automation
- • AI Agent opens PRs from issue/PR comments
- • Agent composes a daily summary from app data
- • Telegram bot texts the summary every day
- • Everything runs on the podman network
Domains & routing
| Domain | Purpose | Handled by |
|---|---|---|
| *.localight | Base wildcard for the whole homelab | AdGuard DNS |
| repos.localight | Git hosting, issues & PRs | Forgejo |
| *.app.localight | Production apps, e.g. notes.app.localight | Caddy → production containers |
| *.app-previews.localight | Per-PR preview environments | Caddy → Traefik → preview containers |
| agent.localight | AI coding agent endpoint | Caddy → AI Agent |
Life of a PR
- Open a PR on Forgejo — or have the AI Agent open one from an issue/PR comment.
- Forgejo fires the trigger preview workflow.
- The pipeline builds the app and pushes the image.
- The preview container pulls the new image from the registry.
- Traefik routes pr-N.app-previews.localight to the live preview.
- Review it, merge, and the preview converges back into the main flow.
Hosts
Everything runs as LXC containers on a single Proxmox host.
| Host | Role | Specs |
|---|---|---|
| dines | DNS & ad-blocking (AdGuard), tailnet endpoint | 1 vCPU · 512 MB · 8 GB |
| reverse-proxy | Ingress — Caddy | 1 vCPU · 512 MB · 4 GB |
| forgejo | Git hosting, issues & PRs | 2 vCPU · 1 GB · 8 GB |
| forgejo-runner | CI/CD runner — builds apps, pushes images | 4 vCPU · 6 GB · 40 GB |
| apps | Production apps (e.g. Notes) + podman network (Traefik, previews) | 2 vCPU · 2 GB · 10 GB |
| db | Databases for the apps | 2 vCPU · 1 GB · 8 GB |
| yo | AI Agent + Telegram bot | 4 vCPU · 8 GB · 60 GB |
| jellywad | Media server (Jellyfin), GPU transcoding | 6 vCPU · 4 GB · 32 GB |
⚓
"I'm gonna be the King of the Pirates!"
— Monkey D. Luffy