Updates
How update notifications work and how to apply them
When your admin publishes a new release and marks it latest, your
dashboard learns about it the next time you load /app. You don't have
to restart, watch a feed, or run any command.
The update banner
If your installed version doesn't match the latest, you'll see a blue
banner at the top of /app:
✨ Update available: v2.13.0
<release notes from admin, if any>
[Update now]The banner only appears when:
- A release is marked
latestin the dashboard - Your proxy has heartbeated at least once (so the dashboard knows your
installedVersion) installedVersion !== latest.version
If you've never installed (no heartbeat yet), the banner doesn't show — go run the initial install first.
Clicking Update
Update now opens the same stepped progress modal you saw during install. The runner reuses every step:
- Stop the existing service (idempotent — handled cleanly even if it's running mid-request)
- Download the new binary
- Verify the new SHA-256
- Atomically swap
/usr/local/bin/proxima-gateway - Re-fetch GeoIP databases (skipped if already present and non-empty)
- Rewrite
config.json— your existing port / firewall / replacement config is preserved; only thelicenseblock is refreshed - Restart the service via
systemctl - Verify it's
active
Total time: usually 10–20 seconds since the GeoIP step is a no-op.
What gets preserved
The runner reads your existing /etc/proxima-gateway/config.json before
writing the new one and merges:
- ✅ All your port configs
- ✅ All URL / ASN replacements
- ✅ Blocked countries, excluded users, image URL
- ✅ Firewall config (rate limits, whitelist, auto-ban thresholds)
Only the license block is overwritten — to ensure the dashboard URL
and license key match what's currently in the database.
What gets lost
- ❌ Anything you added to
config.jsonby hand outside the schema — it's not in the merged copy - ❌ Banned IPs in the in-memory firewall cache — they're rebuilt as traffic comes back in (auto-ban works the same way after a restart)
Downgrades
If your admin marks an older version as latest, the banner will offer
to "update" you to that older version. The runner doesn't distinguish
upgrade from downgrade — it just installs whatever the latest is.
What if I miss a release?
Nothing breaks. The proxy keeps running on the version you have. Updates are opt-in: if you ignore the banner forever, you stay on your current version forever. The dashboard never auto-updates a customer's box.
Update failed — now what?
If the install modal ends in a red Failed state:
- Click Show log output at the bottom of the modal — the journal
tail from
journalctl -u proxima-gatewayis appended there. - Most common cause: the new binary's config schema changed and your existing settings need a tweak. Open Configuration → General and re-save to write a clean config; then click Update now again.
- Still stuck? See Troubleshooting.
Your old binary is gone at this point (the install step ran
successfully — only the start/verify failed). To recover, contact your
admin to either re-mark the previous working version as latest so you
can roll back, or to investigate the failure.