Initial vault setup
This commit is contained in:
@@ -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]]
|
||||
Reference in New Issue
Block a user