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

  1. Open a PR on Forgejo — or have the AI Agent open one from an issue/PR comment.
  2. Forgejo fires the trigger preview workflow.
  3. The pipeline builds the app and pushes the image.
  4. The preview container pulls the new image from the registry.
  5. Traefik routes pr-N.app-previews.localight to the live preview.
  6. 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