Citadel License & Subscription
Your Citadel subscription unlocks the desktop app on up to 2 devices. This page covers how activation works, how to manage devices, what happens when your subscription lapses, and how offline grace works.
How activation works
Citadel desktop app cloud.citadel-hub.com
┌──────────────────┐ ┌────────────────┐
│ Enter email + pw │ ──activate──▶ │ Verify password │
│ + Windows GUID │ │ + active sub? │
│ │ ◀──RS256 JWT── │ + device slot? │
│ Cache token │ └────────────────┘
│ │
│ Every 6h: │
│ refresh ────────▶│ check status
└──────────────────┘
The desktop calls POST /api/v1/license/activate on cloud.citadel-hub.com with your credentials and a stable Windows identifier (HKLM\SOFTWARE\Microsoft\Cryptography\MachineGuid). On success, cloud.citadel-hub.com returns an RS256-signed JWT tied to this specific machine. Citadel caches it in C:\Citadel\data\license.json and refreshes every 6 hours.
Your 2-device limit
Each cloud.citadel-hub.com account gets 2 active device slots. This works for:
- Home server + backup box
- Dev environment + production
- Two different DayZ communities
To use a 3rd machine, revoke one of the first two from either:
- The Citadel dashboard: Sidebar → Subscription → Deactivate this machine
- cloud.citadel-hub.com: Account → Devices → 🗑 next to the device you want to replace
Revoking frees the slot immediately. The revoked machine's Citadel enters unactivated mode on its next verify call.
Offline grace
Citadel validates the cached token locally using an embedded public key. You can run up to 7 days without internet before activation is required again. After the grace window, the app enters read-only mode until it can reach cloud.citadel-hub.com for a fresh verify.
This is intentional — it means a brief network blip or a DDoS against cloud.citadel-hub.com won't take your DayZ management offline.
Subscription states
| Status | What it means | What the desktop app does |
|---|---|---|
| Active | Subscription is paid and current | Everything works |
| Grace | Token valid locally but we haven't hit the server in >6h | Everything works; yellow banner asking you to reconnect |
| Past due | Payment failed, Stripe is retrying | Everything still works during the retry window (up to 14 days); yellow banner prompts you to update payment |
| Canceled | You (or we) canceled the subscription | Works until the paid period ends, then flips to Lapsed |
| Lapsed | Subscription ended — no grace left | Read-only mode; red banner with "Reactivate" button |
You'll never lose access to your server configs, mods, or backups in any state — those are stored locally and belong to you. You just can't make changes when Lapsed.
Managing your subscription
All billing is handled by Stripe. From cloud.citadel-hub.com/account you can open the Stripe Customer Portal, where you can:
- Update your payment method
- Download past invoices
- Change from monthly to yearly (or vice-versa)
- Cancel (takes effect at the end of the current period)
Refunds
We offer a 14-day money-back guarantee on first-time subscriptions. Email [email protected] with your order ID (on your receipt) and we'll process the refund through Stripe.
Security notes
- Your cloud.citadel-hub.com password is bcrypt-hashed server-side — we can't read it
- The RS256 private key that signs license tokens lives only on the cloud.citadel-hub.com server
- The public key embedded in the Citadel desktop app verifies token signatures — it can't sign new tokens
license.jsonon disk contains only the signed token, no credentials. Safe to back up but not particularly sensitive.- Revoking a device invalidates its token on our side — even if someone copies
license.json, the next refresh will fail.
Troubleshooting
"Subscription is not active" on activate — Check your status at cloud.citadel-hub.com/account. If it says Active there but the desktop says otherwise, try signing out and back in on cloud.citadel-hub.com to refresh the session, then re-activate.
"Device limit reached (2)" — See Your 2-device limit above.
Banner says "Grace mode" even with internet — The background refresh runs every 6h and on service start. Click Refresh on the Subscription page to force an immediate check. If it still fails, firewall may be blocking https://cloud.citadel-hub.com on port 443.
Token renewal fails silently — Check C:\Citadel\data\service.log for lines with license. Common causes: clock skew on your server (JWT has a 60s tolerance), proxy breaking TLS, or cloud.citadel-hub.com downtime (check status.cloud.citadel-hub.com — if reachable you're fine).