Caddy
Automatic HTTPS with Caddy, through the installer or by hand.
Caddy gets and renews the Let's Encrypt certificate on its own. It's the simplest option and the one the installer sets up.
With the installer
If you installed with install.sh, give it your domain (you can run it again whenever you like; your data is kept):
curl -fsSL https://kumoyami.com/install.sh | sudo bash -s -- --domain nube.example.com --email you@example.comThe installer checks that ports 80 and 443 are free and that DNS points at the server, then creates in
/opt/kumoyami:
- A
Caddyfilewith your domain, which forwards requests to thewebcontainer. - A
docker-compose.override.ymlwith thecaddyservice (caddy:2image, ports 80, 443 and 443/udp for HTTP/3). Docker Compose merges it withdocker-compose.ymlautomatically.
The first certificate can take a few minutes: DNS has to point at the server already and ports 80 and 443 have to reach it. To keep an eye on it:
cd /opt/kumoyami && sudo docker compose logs -f caddyTo remove Caddy (to switch to your own proxy, say), run the installer with --no-caddy: it stops the service and sets
its configuration aside with a .disabled-DATE suffix.
By hand, with Caddy on the server
If Caddy is already installed on the server (as a system package), add this to your Caddyfile:
nube.example.com {
encode zstd gzip
reverse_proxy 127.0.0.1:4890
}And reload Caddy:
sudo systemctl reload caddyThat's all it takes, including for the WebDAV network drive and large uploads.