--- title: Sandstorm created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, deployment, sandbox, securite, app-platform] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Deployment, https://github.com/sandstorm-io/sandstorm] --- # 🚀 Sandstorm > **La plateforme d'apps sandboxed** — chaque app tourne dans une prison isolĂ©e (grain), sĂ©curitĂ© by-design, modĂšle "documents" plutĂŽt que "users", idĂ©al pour partager des apps self-hosted en famille/Ă©quipe. ## 📋 Informations GĂ©nĂ©rales | Champ | Valeur | | :--- | :--- | | **Site web** | [sandstorm.io](https://sandstorm.io/) | | **GitHub** | [sandstorm-io/sandstorm](https://github.com/sandstorm-io/sandstorm) | | **License** | AGPL-3.0 (gratuit) + commerciale (payante pour usage professionnel) | | **Langage** | C++ / JavaScript | | **Étoiles GitHub** | 7 031 ⭐ | | **CatĂ©gorie** | [[cat-deployment\|Deployment & PaaS]] | ## 📝 Description **Sandstorm** est une **plateforme d'apps self-hosted** radicalement diffĂ©rente des PaaS classiques. Créée en 2014 par Kenton Varda (auteur de Protobuf), elle a une promesse forte : **"une app = une prison"**. Chaque application tourne dans un **grain** — un conteneur Linux ultra-isolĂ© (systĂšme de fichiers, rĂ©seau, mĂ©moire) gĂ©rĂ© par le **sandbox Cap'n Proto** du mĂȘme auteur. L'isolation est **trĂšs agressive** : mĂȘme si une app est compromise (RCE, etc.), l'attaquant ne peut **rien faire d'autre** que d'accĂ©der aux donnĂ©es de ce grain, pas aux autres apps, pas Ă  l'hĂŽte, pas au rĂ©seau. C'est **plus fort qu'un conteneur Docker classique** en termes de surface d'attaque. C'est le **modĂšle de sĂ©curitĂ© utilisĂ© par le projet Sandstorm**. Le modĂšle de donnĂ©es est aussi original : au lieu de "users qui possĂšdent des apps", Sandstorm a des **"grains"** (instances d'app) que l'admin **partage avec des utilisateurs** (par lien, par email, par groupe). L'UI ressemble Ă  un **gestionnaire de documents** — chaque grain apparaĂźt comme un fichier qu'on ouvre. TrĂšs adaptĂ© pour **hĂ©berger et partager** des outils internes (Etherpad, Davros, Wekan, etc.) avec une Ă©quipe ou une famille. **Public cible** : **particuliers soucieux de la sĂ©curitĂ©** qui veulent tester plein d'apps sans risque de compromettre leur serveur, **petites Ă©quipes** qui partagent des outils self-hosted, **hĂ©bergeurs de plateformes** (PaaS multi-tenant). Pour du PaaS plus classique (git push), voir [[app-coolify]] / [[app-dokploy]] ; pour un app store plus simple, [[app-runtipi]]. ## 🚀 Installation ### Via Docker (recommandĂ© pour tester) ```yaml # docker-compose.yml services: sandstorm: image: sandstorm/sandstorm:latest container_name: sandstorm restart: unless-stopped ports: - "6080:6080" # Web (admin & utilisateurs) - "11025:11025" # SMTP (notifications) volumes: - /var/run/docker.sock:/var/run/docker.sock:ro # optionnel : permet Ă  Sandstorm de gĂ©rer ses propres conteneurs - ./data:/var/sandstorm environment: - WELCOME_TEXT=Bienvenue sur mon Sandstorm ``` ### Installation manuelle (recommandĂ© en prod — natif sur l'hĂŽte) ```bash # Sur Debian/Ubuntu (un seul binaire) curl https://install.sandstorm.io | bash # UI accessible sur https://IP:443 (auto-signĂ©) # 1er compte créé = admin ``` > ⚠ **Sandstorm peut fonctionner en mode "dev"** (installĂ© Ă  l'intĂ©rieur d'un conteneur) ou en **mode "prod"** (installĂ© nativement, gĂšre lui-mĂȘme ses grains). Le mode natif est **recommandĂ©** pour la stabilitĂ© des sandboxes. ## ⚙ Configuration 1. **Premier accĂšs** : `https://IP:6080`, crĂ©er le **compte admin** (devenir "first member" via la console dev) 2. **Choisir l'OAuth** : activĂ© par dĂ©faut, les nouveaux visiteurs sont en mode "anonymous" — activer les invitations par email 3. **Installer des apps** depuis l'**app market** : Etherpad, Wekan, Davros (calendrier), WordPress, Ghost, MediaGoblin, etc. 4. **CrĂ©er un grain** : choisir une app → "Create new grain" → configurer l'accĂšs (privĂ©, partagĂ©, public) 5. **Partager** : bouton "Share" → email, lien, ou groupe. Chaque grain a des **rĂŽles** (read/write/admin) 6. **Monitoring** : dashboard admin → ressources par grain, logs, alertes 7. **Backup** : `/var/sandstorm` contient l'Ă©tat + grains (sauvegarder rĂ©guliĂšrement) ## 🔗 Alternatives - **Co-op Cloud** (Outlandish) — autre PaaS communautaire basĂ© sur Docker Swarm + abra - **Yunohost** — apps packagĂ©es Debian, modĂšle "user = domaine", plus ĂągĂ© - **Cloudron** — apps auto-hĂ©bergĂ©es, modĂšle LAMP + sandboxes par app - **Capsule (K3s)** — PaaS basĂ© sur Kubernetes, multi-tenant - **AppFlowy Cloud** — "Notion-like" auto-hĂ©bergĂ© (diffĂ©rent scope) - **Coolify / Dokploy** — PaaS classiques, sĂ©curitĂ© moindre mais workflow dev ## 🔒 SĂ©curitĂ© - **Sandboxing natif** : chaque app a son UID dĂ©diĂ©, sa jail chroot, son namespace rĂ©seau - **Pas d'accĂšs root** dans les grains, pas de syscall privilĂ©giĂ© - **HTTPS obligatoire** : Sandstorm force le HTTPS sur le domaine configurĂ© - **Auto-login sĂ©curisĂ©** : capabilities URLs, expiration configurable - **Mises Ă  jour** : OTA via le dashboard, alertes de CVE dans l'app market - **Mode "demo"** : instance jetable, reset toutes les 24h, parfait pour tester - **Wildcard DNS** : Sandstorm crĂ©e automatiquement des sous-domaines par grain ## 📚 Ressources - [Site officiel](https://sandstorm.io/) - [Documentation](https://docs.sandstorm.io/) - [DĂ©pĂŽt GitHub sandstorm-io/sandstorm](https://github.com/sandstorm-io/sandstorm) - [App Market](https://apps.sandstorm.io/) - [CommunautĂ© Discourse](https://groups.google.com/g/sandstorm-dev) ## 🔗 Pages LiĂ©es - [[cat-deployment]] - [[app-coolify]] - [[app-dokploy]] - [[app-runtipi]] - [[app-portainer]] - [[cat-docker]] - [[securisation-home-lab]] - [[recettes-docker-compose]]