Caddy

Caddy as a reverse-proxy front door โ€” automatic HTTPS, one Caddyfile, no separate cert management.

The files for this example are on Github.

The example

A single caddy service on the pre-existing external incusbr0 network (static IP 10.179.215.4). Its Caddyfile (caddy/Caddyfile) serves a static site directly and reverse-proxies to the other host-facing examples in this repo by their static IPs:

Domain Backend
example.com, www.example.com static site in sites/example.com
git.example.com gitea at 10.136.32.17:3000
clock.example.com kimai at 10.137.32.17:8001
immich.example.com immich at 10.131.32.17:2283
docker-registry.example.com, ghcr-registry.example.com, gitlab-registry.example.com oci-registry-cache's three registries

The dns example serves the authoritative example.com zone these domains resolve against.

Usage

incus-compose up

Bring up whichever backend examples you want proxied, point DNS at them (see dns), and browse to the domains above.

Notes

  • The service sleeps 5s before starting Caddy, to let the network interface come up first.