Introduction
Running self-hosted web applications typically means managing multiple Docker containers, configuring reverse proxies, handling SSL certificates, setting up authentication, and maintaining separate databases for each app. Self-hosted application platforms aim to collapse this complexity into a unified management experience — an “app store” for your own server. But different platforms take fundamentally different approaches to security, isolation, and application packaging.
This guide compares three self-hosted application platforms that prioritize security through sandboxing and isolation: Sandstorm (capability-based security), FreedomBox (privacy-first Debian appliance), and Cloudron (Docker-based app marketplace with commercial support).
| Feature | Sandstorm | FreedomBox | Cloudron |
|---|---|---|---|
| First Release | 2015 | 2010 | 2015 |
| GitHub Stars | 7,034+ | 207+ (mirror) | Proprietary core |
| Security Model | Capability-based (Capsicum) | AppArmor + system isolation | Docker container isolation |
| App Count | 80+ apps | 25+ apps | 140+ apps |
| App Packaging | SPK (Sandstorm Package) | Debian packages (.deb) | Docker images |
| Authentication | Built-in per-app granular | LDAP + Plinth web UI | Built-in with LDAP/AD/OAuth |
| Networking | Cap’n Proto RPC (no raw TCP) | Standard TCP/IP | Standard TCP/IP + reverse proxy |
| Updates | Manual + auto-update | apt unattended-upgrades | Automatic via dashboard |
| Multi-User | Yes (per-document sharing) | Yes (system users) | Yes (per-app user management) |
| License | Apache 2.0 | AGPL v3 | AGPL v3 (core) |
Security Architecture Deep Dive
Sandstorm: Capability-Based Security
Sandstorm’s approach to application security is unique among self-hosting platforms. Every app instance runs in a sandbox enforced by the Capsicum capability system (FreeBSD/Linux). Key design principles:
- No ambient authority: Apps cannot access the network, filesystem, or other apps unless explicitly granted a capability token
- Powerbox pattern: When an app needs to access data (e.g., a file the user wants to upload), the user selects it through a system-provided picker — the app never sees the full filesystem
- Per-document access control: Sharing a document in Sandstorm grants access to that specific document, not the entire application
- Cap’n Proto RPC: All inter-app communication uses Cap’n Proto, a capability-based RPC protocol that eliminates entire classes of network-based attacks
This means even if an application within Sandstorm has a remote code execution vulnerability, the attacker cannot access other apps, the host filesystem, or the network — because those capabilities were never granted.
FreedomBox: Privacy by Default
FreedomBox takes a different approach: it’s a Debian-based operating system designed to run on low-power hardware (Raspberry Pi, old laptops) and provide essential privacy-respecting services. Instead of running arbitrary third-party apps, FreedomBox curates a focused set of privacy-enhancing applications: Tor, Matrix Synapse (chat), Jitsi Meet (video conferencing), Searx (private search), Tahoe-LAFS (encrypted storage), and Radicale (calendar/contacts).
Security comes from Debian’s well-established package maintenance, automatic security updates via unattended-upgrades, and AppArmor confinement where available. The Plinth web interface provides a simplified admin experience accessible to non-technical users.
Cloudron: Docker Isolation with Commercial Polish
Cloudron packages applications as Docker containers with standardized configuration interfaces. While Docker provides process and network isolation, Cloudron adds an authentication proxy layer, automatic Let’s Encrypt SSL, centralized user management, and backup/restore functionality. The core platform is open source (AGPL v3), with app packages available through a subscription ($30/month for 5+ apps).
Cloudron’s security model is more permissive than Sandstorm’s: apps have standard network access, can communicate with other apps on the same server, and have filesystem access within their container volumes. The tradeoff is compatibility — Cloudron can run any Docker-packaged application, while Sandstorm requires apps to be repackaged with capability-aware APIs.
Deployment and Setup
Sandstorm Installation
| |
FreedomBox Installation
| |
Cloudron Installation
| |
App Ecosystem
| Category | Sandstorm | FreedomBox | Cloudron |
|---|---|---|---|
| Productivity | Etherpad, Wekan, Grocy | Radicale, Ikiwiki | Nextcloud, OnlyOffice, Paperless-ngx |
| Communication | Rocket.Chat, Mattermost | Matrix Synapse, Jitsi Meet | Mattermost, Element, Discord bots |
| Development | GitLab, Gitea | Gitea | GitLab, Gitea, Jenkins, Drone CI |
| Media | H5P, Ghost | Transmission, MiniDLNA | Plex, Jellyfin, Audiobookshelf |
| Privacy/Security | Built-in capability model | Tor, OpenVPN, WireGuard | Vaultwarden, WireGuard, AdGuard Home |
| Analytics | Matomo | - | Matomo, Plausible, Umami |
Capability-Based App Model vs Traditional App Model
The fundamental difference between Sandstorm and other self-hosting platforms is the app packaging mindset:
Traditional model (Cloudron, FreedomBox): Install an app → it has full access to its database, file storage, and network → manage access through the app’s own authentication system → each app is an island.
Sandstorm model: Install an app template → create “grains” (instances) per project/team → each grain gets only the capabilities you explicitly grant → share documents between grains via capability tokens → apps are interconnected but security-isolated.
This model enables use cases that are impossible with traditional platforms: give a contractor access to your project management board without giving them access to your wiki or file storage, even if all three run on the same server.
Why Self-Host an Application Platform?
If you already run self-hosted applications with Docker Compose, nginx reverse proxy, and manual SSL certificate management, why adopt an app platform? Three reasons:
- Reduced maintenance burden: Platforms handle updates, SSL renewal, backup scheduling, and monitoring automatically — saving hours of sysadmin work per month
- Unified authentication: Single sign-on across all apps reduces the “password fatigue” of managing separate credentials for each service
- Non-technical user access: Platform dashboards enable family members or team members to install and manage apps without command-line access
For related reading on self-hosted home server operating systems, see our CasaOS vs Umbrel vs YunoHost guide. For Docker container management tools, our Docker management UI comparison covers lighter-weight alternatives.
FAQ
Can I run Sandstorm apps alongside my existing self-hosted services?
Yes. Sandstorm runs as a service on a standard Linux server and doesn’t interfere with other services. However, Sandstorm apps are not accessible as standard web services — they must be accessed through the Sandstorm shell. If you need apps that integrate with external services via API, Cloudron or a traditional deployment model may be more suitable.
Is Sandstorm still actively maintained?
Sandstorm development slowed significantly after 2017 when the company behind it (Sandstorm Development Group) shifted focus. The open-source community maintains the core platform, and existing apps continue to function. However, new app development and security updates are community-driven rather than backed by a commercial entity. For production-critical deployments, Cloudron’s commercial support model provides stronger long-term viability guarantees.
How does FreedomBox handle software updates?
FreedomBox leverages Debian’s unattended-upgrades package for automatic security updates. The Plinth web interface displays available updates and allows one-click application. Because all FreedomBox apps are standard Debian packages, they benefit from Debian’s security team and long-term support (LTS) commitments.
What hardware do I need for these platforms?
Sandstorm requires a 64-bit x86 Linux server with at least 1GB RAM and 10GB storage (2GB+ recommended for multiple apps). FreedomBox is designed for low-power ARM devices (Raspberry Pi 3/4 with 1GB+ RAM). Cloudron requires Ubuntu 20.04/22.04 LTS with 2GB+ RAM and 20GB+ storage (more for multiple apps).
How do I migrate away from a self-hosting platform?
Cloudron apps store data in standard Docker volumes — you can copy these to any Docker host and run the app independently. Sandstorm grains store data in a custom format; migration requires exporting data through the app’s own export functionality (if supported). FreedomBox apps are standard Debian packages with standard configuration files in /etc/ and data in /var/ — migration follows standard Debian backup/restore procedures.
Which platform should I choose for a family or small team?
For a privacy-focused family server with minimal maintenance, FreedomBox is ideal — it provides the essential services (file sharing, calendar, chat, VPN) with Debian’s reliability. For a small team that needs a wider app selection with business features (backup, SSO, monitoring), Cloudron provides the best experience at $30/month. For security-sensitive deployments where you want the strongest isolation guarantees (research data, client documents, healthcare information), Sandstorm’s capability-based model offers protection that no other self-hosting platform provides.
💰 想测试你的市场判断力?我用 Polymarket 做预测市场交易——这是全球最大的预测市场平台,从大选结果到技术监管时间线,什么都可以押注。和赌博不同,这是真正的信息市场:你懂的信息越多,胜率越高。我靠预测技术相关事件的走向已经赚了不少。用我的邀请链接注册:Polymarket.com