russel-ctrl only speaks plain HTTP on 127.0.0.1:7878. To reach it from elsewhere without an SSH tunnel, put a reverse proxy on the same server that handles HTTPS and forwards to it.
/ and the API at both / and /api/, so the proxy forwards everything as-is. The only special setting: turn off response buffering, because deploys stream their progress line by line, and a buffering proxy holds it all back until the deploy ends.
What you’ll need
- A working install (Installation).
- A DNS name for the server, such as
russel.example.com. - Ports 80 and 443 open. Keep 7878 closed.
Caddy
Caddy gets and renews the certificate on its own once DNS points at the server.flush_interval -1 sends deploy progress through as it happens.
nginx
proxy_buffering off streams deploy progress, and the long proxy_read_timeout keeps slow first builds from being cut off.
Traefik
If you already run Traefik for your apps, add a router for the control plane to its dynamic config. Put it in its own file, outside the folder Russel writes to:Log in
https://russel.example.com/, go to Settings, paste the token, and leave the API address at /api.
Checklist
-
russel-ctrllistens on127.0.0.1:7878only, and the firewall blocks 7878. - The token file stays private: the installer’s
/etc/russel/envisroot:russel, mode0640. - The proxy doesn’t buffer responses.
-
russel originshows the HTTPS address and says it’s reachable.