TLS and HTTP/2
Serve Arcane over HTTPS through a reverse proxy or your own TLS certificates.
For most installations, let a reverse proxy handle HTTPS (Option A). Otherwise Arcane can serve HTTPS itself with your certificate (Option B).
Option A: HTTPS handled by a reverse proxy
Section titled “Option A: HTTPS handled by a reverse proxy”Set these when Nginx, Caddy, Traefik, or another proxy handles HTTPS. ARCANE_PORT is optional and defaults to 3552.
ARCANE_TLS_ENABLED=falseARCANE_APP_URL=https://your-domain.comOption B: Direct Arcane HTTPS and HTTP/2
Section titled “Option B: Direct Arcane HTTPS and HTTP/2”You need a domain name, a valid certificate and private key, and access to Arcane’s .env or container settings. Arcane won’t start with ARCANE_TLS_ENABLED=true unless both ARCANE_TLS_CERT_FILE and ARCANE_TLS_KEY_FILE are set.
- Set these in your
.envfile or container environment:
ARCANE_TLS_ENABLED=trueARCANE_TLS_CERT_FILE=/full/path/to/your/certificate.pemARCANE_TLS_KEY_FILE=/full/path/to/your/private-key.pemARCANE_APP_URL=https://your-domain.com- Optionally set
ARCANE_PORT(default3552) andARCANE_LISTEN(empty binds all interfaces). - Restart Arcane.
- Open your
https://URL and check the browser reports a valid certificate.
HTTP/2 without TLS
Section titled “HTTP/2 without TLS”When ARCANE_TLS_ENABLED=false, Arcane accepts HTTP/1.1 and h2c (HTTP/2 without encryption) on the same port. Proxies use h2c to forward gRPC, such as the Edge Agent tunnel. Keep h2c internal; use HTTPS for public access.