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).

FeatureSandstormFreedomBoxCloudron
First Release201520102015
GitHub Stars7,034+207+ (mirror)Proprietary core
Security ModelCapability-based (Capsicum)AppArmor + system isolationDocker container isolation
App Count80+ apps25+ apps140+ apps
App PackagingSPK (Sandstorm Package)Debian packages (.deb)Docker images
AuthenticationBuilt-in per-app granularLDAP + Plinth web UIBuilt-in with LDAP/AD/OAuth
NetworkingCap’n Proto RPC (no raw TCP)Standard TCP/IPStandard TCP/IP + reverse proxy
UpdatesManual + auto-updateapt unattended-upgradesAutomatic via dashboard
Multi-UserYes (per-document sharing)Yes (system users)Yes (per-app user management)
LicenseApache 2.0AGPL v3AGPL 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:

  1. No ambient authority: Apps cannot access the network, filesystem, or other apps unless explicitly granted a capability token
  2. 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
  3. Per-document access control: Sharing a document in Sandstorm grants access to that specific document, not the entire application
  4. 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

1
2
3
4
5
6
# One-command install (requires 64-bit Linux)
curl https://install.sandstorm.io | bash

# Configuration after install
# Access admin panel at https://your-server:6080
# Upload apps from the Sandstorm App Market or build your own SPK

FreedomBox Installation

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Option 1: Install on Debian
sudo apt-get install freedombox

# Option 2: Use pre-built image for Raspberry Pi
# Download from https://freedombox.org/download/
# Flash to SD card and boot

# Initial setup via Plinth web interface
# Access at https://freedombox.local
# Complete the first-run wizard to configure networking, users, and apps

Cloudron Installation

1
2
3
4
5
6
7
8
9
# Supported on Ubuntu 20.04/22.04 LTS
# One-command install
wget https://cloudron.io/cloudron-setup
chmod +x cloudron-setup
./cloudron-setup

# Access admin dashboard at https://my.domain.com
# Complete domain setup (requires a domain pointing to your server)
# Install apps from the Cloudron App Store

App Ecosystem

CategorySandstormFreedomBoxCloudron
ProductivityEtherpad, Wekan, GrocyRadicale, IkiwikiNextcloud, OnlyOffice, Paperless-ngx
CommunicationRocket.Chat, MattermostMatrix Synapse, Jitsi MeetMattermost, Element, Discord bots
DevelopmentGitLab, GiteaGiteaGitLab, Gitea, Jenkins, Drone CI
MediaH5P, GhostTransmission, MiniDLNAPlex, Jellyfin, Audiobookshelf
Privacy/SecurityBuilt-in capability modelTor, OpenVPN, WireGuardVaultwarden, WireGuard, AdGuard Home
AnalyticsMatomo-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:

  1. Reduced maintenance burden: Platforms handle updates, SSL renewal, backup scheduling, and monitoring automatically — saving hours of sysadmin work per month
  2. Unified authentication: Single sign-on across all apps reduces the “password fatigue” of managing separate credentials for each service
  3. 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