Deployment
Docker
For local use, bind to loopback only:
docker run -p 127.0.0.1:8080:8080 -v redrive:/data redrive/redrive
For a shared instance, bind wide and set the password gate:
docker run -p 8080:8080 -v redrive:/data -e REDRIVE_PASSWORD=… redrive/redrive
The container healthchecks itself against /healthz, so docker ps and any orchestrator in front of it can tell when Redrive is actually ready, not just running.
Upgrading Docker
docker pull redrive/redrive
docker rm -f <container>
docker run -p 8080:8080 -v redrive:/data -e REDRIVE_PASSWORD=… redrive/redrive
State lives in the redrive volume, not the container, so it survives the swap.
TLS
Redrive terminates no TLS itself, by design — that's a solved problem, and there's no reason to reimplement it badly. Put a reverse proxy in front. Caddy, for instance, handles certificates on its own:
caddy reverse-proxy --from redrive.example.com --to localhost:8080
Server mode
Binding beyond loopback turns Redrive into a shared workspace: one password gates the whole thing, and everyone who has it sees every connection. There's no per-user separation, so treat it as a team tool rather than a multi-tenant one.
Downgrades
A database migrated by a newer version doesn't open in an older one. If a release breaks something for you, wait for a hotfix or ask for one — downgrading the binary isn't a safe way back.