One-click service onboarding: DNS + Caddy route + Homer entry #50

Open
opened 2026-08-21 18:51:58 +00:00 by lab · 0 comments
Owner

Today, exposing a new service means three manual steps:

  1. Create a Cloudflare DNS record via the API dashboard
  2. Append a route block to k3s-ha-cluster/caddy/configmap.yaml
  3. Add an entry to k3s-ha-cluster/homer/config.yaml

Goal

One command/workflow that takes a service name (+ namespace/port) and does
all three, so new deployments are exposed consistently every time:

  • Create <name>.yukselcloud.com record in Cloudflare using the existing
    scoped API token (already mounted in the ddns deployment)
  • Insert the standard Caddy route block (log + crowdsec + reverse_proxy)
  • Rollout-restart the Caddy deployment
  • Add the Homer dashboard tile

Design decision

Prefer GitOps-first: the tool commits the config changes to this repo and CI
applies them, instead of imperative curl against the cluster APIs. Keeps
the repo as the source of truth.

Scope notes

  • Complements #36 (generic Forgejo workflow template for deploying apps);
    that issue covers deploying, this one covers exposing
  • bentopdf / openGym / mealie issues are the first consumers
Today, exposing a new service means three manual steps: 1. Create a Cloudflare DNS record via the API dashboard 2. Append a route block to `k3s-ha-cluster/caddy/configmap.yaml` 3. Add an entry to `k3s-ha-cluster/homer/config.yaml` ## Goal One command/workflow that takes a service name (+ namespace/port) and does all three, so new deployments are exposed consistently every time: - Create `<name>.yukselcloud.com` record in Cloudflare using the existing scoped API token (already mounted in the ddns deployment) - Insert the standard Caddy route block (log + crowdsec + reverse_proxy) - Rollout-restart the Caddy deployment - Add the Homer dashboard tile ## Design decision Prefer GitOps-first: the tool commits the config changes to this repo and CI applies them, instead of imperative `curl` against the cluster APIs. Keeps the repo as the source of truth. ## Scope notes - Complements #36 (generic Forgejo workflow template for deploying apps); that issue covers deploying, this one covers exposing - bentopdf / openGym / mealie issues are the first consumers
Sign in to join this conversation.
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
lab/homelab#50
No description provided.