DigitalOcean (Static-IP Egress)
Egress routing can give a route a fixed public address your upstream can allowlist. KnoxCall provisions the droplet, reserved IP and firewall for that on a DigitalOcean account — this card holds the token it does it with. Scope: Global defaults only. On KnoxCall Cloud this is KnoxCall’s account. A self-hosted deployment that wants static-IP egress uses its own DigitalOcean account here.1. In DigitalOcean
- API → Tokens → Generate New Token.
- Custom Scopes — enough is:
dropletcreate/read/delete ·reserved_ipcreate/read/update ·firewallcreate/read/update ·projectread/update. A legacy Read + Write token also works but grants the whole account. - Pick an expiry and diary it: an expired token fails at provisioning time, not at save time.
- Copy the token (
dop_v1_…) — shown once. - Optional but recommended: tag the droplet that runs KnoxCall (e.g.
knoxcall-control-plane). The egress firewall admits port 8443 only from droplets carrying that tag — the tag is the allowlist, so do not reuse it for anything else.
2. Enter it in KnoxCall
Settings → Integrations → Global defaults → DigitalOcean → Configure:
Save credentials.
3. Verify
Provision one egress server from Egress, confirm it comes up with a reserved IP, route a test request through it, then delete it. A bad token fails on the firewall listing call first.Things that bite
- Prefer the tag. A stale IP list is the failure mode that looks like a healthy egress server refusing every connection.
- Environment fallback. With no stored token a self-hosted host falls back to
DO_API_TOKEN, so a deleted row does not necessarily disable provisioning. - Costs are yours: each egress server is a droplet plus a reserved IP on your account.