Applications: Your Apps, Your Rules
An Application is a fully managed, ready-to-run service — like a website, media server, or development tool — deployed and run on your Citadel Territory.
Think of it like a plug-and-play app:
- No Linux setup
- No Docker commands
- No config files
Just pick an app, click "Install," and it runs — all in your private Territory.
What an Application Is
An Application is:
- A pre-packaged service (web app, file sync, media server, etc.)
- Fully isolated within your Territory
- Automatically managed by CitadelHosts (updates, backups, scaling)
- Accessible via a unique URL (e.g.,
<your-unique-sub>.citadelhosts.com) or internal network
🌐 You can even connect apps within the same Territory — like a database talking to a web app.
What an Application Is Not
- ❌ Not a full server (you can’t SSH into it)
- ❌ Not a custom script or Docker container (yet — but coming soon)
- ❌ Not a full OS or VM (you don’t manage the OS layer)
✅ You focus on what you want to run — we handle the rest.
Examples of Applications You Can Run
| App | Use Case |
|---|---|
| Jellyfin | Stream your movies, music, and photos |
| Gitea | Host your Git repos and CI/CD pipelines |
| Nextcloud | Run your own cloud storage and file sync |
| WordPress | Launch a personal blog or website |
| Act Runner | Run automated workflows (CI/CD) |
🔮 More apps coming soon — we’re adding new ones every week.
How Applications Work in CitadelHosts
- You choose a Territory (e.g., “Media”, “Dev Team”)
- You click "Add App" on your Dashboard
- You select an app from our catalog
- You click Install
- CitadelHosts handles the rest — deployment, configuration, and monitoring
✅ No terminal. No Docker. No config files. Just click and go.
Customization Coming Soon...
🛠️ In the near future, you’ll be able to:
- Change storage limits
- Set environment variables
- Adjust ports and network settings
- Connect to external databases
- Provide custom Container images
We’re building this for you — stay tuned!
Application Details
Once installed, each Application has a dedicated details page where you can:
- Control access and authentication
- Monitor performance
- Manage backups
- Adjust storage
- View usage metrics
You’ll find this page from your Dashboard by clicking on the app name in your Territory.
🔐 Application State Control and Access
The top of the Application details page has a section that contains your Application's access link, controls, and authentication toggle.

After installing an Application it will go into the Queued state. Once the Application reaches the Created state, you can start it by accessing the controls at the top of the Application's details page. If your Application is in the Running state, you can then access the Application by clicking on your link present on the page.
The Require Authentication toggle allows you to tie into the CitadelHosts authentication system before accessing your app link. When applications require authentication through CitadelHosts the link will only be accessible if an authentication cookie is present in the browser that is trying to access this link. In other words, in order to access that application the accessor must be logged into the CitadelHosts account of the user that owns that application.
🛡️ Require Authentication
When enabled, only users logged into your CitadelHosts account can access the app.
This prevents public exposure — great for sensitive apps or those without their own authentication system like Sync-In or Trilium.
Application Status
The status section allows you to see the current state of the Application, as well as view a graph of the CPU and Memory usage.

Applications can have the following states:
| State | Meaning |
|---|---|
| Queued | Configuration is waiting to be processed |
| Created | App is installed and resources allocated |
| Running | App is active and accessible |
| Stopped | App is paused (saves resources) |
| Deleted | App is permanently removed |
| Unknown | System error — contact support |
💡 Tip: If your app is stuck in "Queued" for >5 minutes, check your Territory’s resource limits.
Application Backups
The backups section gives you the control of enabling backups for your application. You can check if backups are enabled, enable them if they are not, and restore from backups from this section. To restore from a backup, simply press the "Restore" button.

This system will be receiving updates expect changes to come.
✅ Backups are enabled by default for all apps
You can disable them, but we strongly recommend keeping them on.
⚠️ Restoring from a backup will replace all current data
Always double-check before restoring.
📦 Application Storage: Manage Data with Confidence
The Storage section gives you full visibility into how your Application uses space — including containers and mounted volumes. You can see:
- Which containers are running
- How much storage each one uses
- Which volumes are attached and their size
This helps you understand your app’s resource usage and plan upgrades or optimizations.
🔧 Two Powerful Controls (Use with Care)
You have two key tools here:
- Upload — Replace a volume with data from a
.tarfile - Stack — Mount a shared Storage Volume to your app
⚠️ Warning: Both actions replace all data in the target volume.
Always double-check before proceeding — this cannot be undone.
📤 Upload: Migrate Data from Another System
Use the Upload button to bring existing app data into CitadelHosts.
When to use it:
- Migrating from another server
- Replacing a broken or corrupted volume
- Restoring from a backup
How it works:
- Click the Upload icon
- Select a
.tarfile containing your app’s data - Choose which volume to replace (e.g., “Media Data”)
- Confirm and wait for the upload to complete
🔄 Example: Upload a
.tarfile of your old Jellyfin library to restore your media collection.
🔗 Stack: Share Storage Across Apps (Advanced)
The Stack button lets you mount a Storage Volume to your Application — enabling powerful data sharing across your Citadel.
Why it’s useful:
- Share a single media library between Jellyfin and a web app
- Reuse a database volume across multiple services
- Centralize backups or configuration files
How it works:
- Click the Stack button
- Select the Storage Volume you want to mount (e.g., “Shared Media”)
- Choose which volume in your app to replace (e.g., “Media Storage”)
- Confirm — the volume is now shared
🔁 Example: Mount a “Shared Media” volume to both your Sync-In app and your Jellyfin instance to have control of your media library in Jellyfin.

Pro Tips
- ✅ Use separate Territories for different types of apps (e.g., media, dev, file storage)
- ✅ Start with a Watchtower Territory for lightweight apps
- ✅ Keep your apps updated — CitadelHosts handles updates automatically
🛡️ Your apps. Your data. Your Citadel.
Quick Reference: Application Management
| Action | Where to Find It |
|---|---|
| Start/Stop App | Top controls on details page |
| Enable Authentication | Access controls section |
| View Usage | Status graph |
| Enable Backups | Backups section |
| Restore from Backup | Backups → "Restore" button |
| Upload Data | Storage → Upload button |
| Share Storage | Storage → Stack button |
Need Help?
💬 Contact us anytime — we’ll help you pick the right app or design your setup.