Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+115
View File
@@ -0,0 +1,115 @@
---
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]]