Files
2026-06-09 18:40:21 +02:00

5.8 KiB


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
GitHub sandstorm-io/sandstorm
License AGPL-3.0 (gratuit) + commerciale (payante pour usage professionnel)
Langage C++ / JavaScript
Étoiles GitHub 7 031
Catégorie cat-deployment

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

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

# 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

🔗 Pages Liées