--- title: Stormkit created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, deployment, frontend, paas, ci-cd] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/stormkit-io/stormkit-io] --- # 💻 Stormkit > **PaaS self-hosted pour le déploiement d'apps frontend** — connectez un repo Git, push, et Stormkit build, optimise et déploie automatiquement votre SPA (React, Vue, Svelte, Solid, Astro…) avec CDN, preview par PR et rollback instantané. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | [stormkit.io](https://www.stormkit.io/) | | **GitHub** | [stormkit-io/stormkit-io](https://github.com/stormkit-io/stormkit-io) | | **License** | AGPL-3.0 | | **Langage** | Go (backend) + TypeScript (build agents) | | **Étoiles GitHub** | 95 ⭐ | | **Catégorie** | Development, PaaS / Deployment | | **Référence** | [selfh.st Development](https://selfh.st/apps/?tag=Development) | ## 📝 Description **Stormkit** est un **PaaS (Platform-as-a-Service) spécialisé dans le déploiement d'apps frontend** : c'est le **« Vercel/Netlify self-hosted »** que beaucoup attendent. Vous connectez un **repo GitHub/GitLab/Bitbucket**, vous choisissez le **framework** (React, Vue, Svelte, Solid, Astro, Next, Nuxt, SvelteKit, Gatsby…), et Stormkit se charge du **build, de l'optimisation, du déploiement, de la distribution CDN** et des **previews par Pull Request**. Le modèle **serverless functions** est supporté pour les runtimes Node.js, et l'infrastructure de build s'appuie sur des **build agents** que vous pouvez **run on-prem** (Docker). C'est particulièrement adapté aux **agences, studios et équipes produit** qui veulent proposer du « **push to deploy** » à leurs clients sans dépendre de Vercel (payant au-delà du hobby) ou de Netlify (verrouillage progressif). L'alternative open source la plus connue reste **Coolify** (plus généraliste, supporte aussi backends, DBs, Docker apps) et **Dokku** (mini-Heroku en PaaS Docker). Stormkit mise sur la **spécialisation frontend** et la **simplicité d'usage** : un dashboard unique, des **environnements par branche**, des **previews automatiques** sur chaque PR, et un **rollback en un clic**. ⚠️ **Notes importantes** : Stormkit reste un **projet jeune** avec un nombre d'étoiles **relativement faible (95)**. Pour un usage critique en production, évaluer la **maturité du projet**, la **qualité de la communauté** et la **roadmap**. La société éditrice propose une **version cloud** (stormkit.io) en complément du self-host, ce qui est un bon indicateur de **soutenabilité**. ## 🚀 Installation ### Via Docker (recommandé) ```yaml # docker-compose.yml version: '3.8' services: stormkit-server: image: ghcr.io/stormkit-io/stormkit-io:latest container_name: stormkit-server restart: unless-stopped ports: - "8888:8888" environment: SK_HOST: "https://stormkit.example.com" SK_DATABASE_URL: "postgresql://storm:***changeme***@db:5432/stormkit" SK_REDIS_URL: "redis://redis:6379/0" SK_ENCRYPTION_KEY: "openssl-rand-hex-32" SK_GITHUB_CLIENT_ID: "***" SK_GITHUB_CLIENT_SECRET: "***" SK_BUILD_AGENT_TOKEN: "openssl-rand-hex-32" depends_on: [db, redis] labels: - "traefik.enable=true" - "traefik.http.routers.stormkit.rule=Host(`stormkit.example.com`)" - "traefik.http.routers.stormkit.entrypoints=websecure" - "traefik.http.routers.stormkit.tls.certresolver=letsencrypt" stormkit-builder: image: ghcr.io/stormkit-io/builder:latest container_name: stormkit-builder restart: unless-stopped environment: SK_SERVER_URL: "https://stormkit.example.com" SK_AGENT_TOKEN: "openssl-rand-hex-32" volumes: - /var/run/docker.sock:/var/run/docker.sock # pour builder les images db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_DB: stormkit POSTGRES_USER: storm POSTGRES_PASSWORD: ***changeme*** volumes: - storm_db:/var/lib/postgresql/data redis: image: redis:7-alpine restart: unless-stopped volumes: storm_db: ``` ### Installation manuelle ```bash git clone https://github.com/stormkit-io/stormkit-io.git cd stormkit-io cp .env.example .env # éditer SK_* docker compose up -d ``` ## ⚙️ Configuration 1. **OAuth GitHub/GitLab** : créer une OAuth app sur le provider et renseigner `SK_GITHUB_CLIENT_ID/SECRET`. 2. **Build agent** : le service `stormkit-builder` a besoin d'un accès au **socket Docker** de l'hôte pour builder les images — isolé sur un hôte dédié recommandé. 3. **Domaine et wildcard DNS** : configurer un wildcard `*.apps.example.com` pour les **previews par PR** (chacune a son URL). 4. **Webhook Git** : ajouter le webhook Stormkit sur chaque repo (auto via OAuth). 5. **Backups PostgreSQL** : `storm_db` contient l'état des apps, builds, deploys — sauvegarder quotidiennement. ## 🔗 Alternatives - **Vercel** — Le plus populaire, excellent DX, mais cloud only et payant au-delà du hobby tier. - **Netlify** — Concurrent historique, fonctions serverless, formulaires, identité — pricing complexe. - **Cloudflare Pages** — Gratuit, CDN global, mais lié à l'écosystème Cloudflare et Workers only. - **Coolify** — Alternative **self-hosted généraliste** (frontends + backends + DBs), plus large que Stormkit. - **Dokku** — Mini-Heroku open source, basé sur Docker + Git push, plus DIY. - **CapRover** — PaaS self-hosted avec marketplace d'« one-click apps », plus simple que Dokku. ## 🔒 Sécurité - 🔐 **HTTPS obligatoire** via [[app-traefik]] : OAuth, builds et previews par PR transitent en clair sinon. - 🔒 **`SK_ENCRYPTION_KEY` robuste** : `openssl rand -hex 32`, sauvegarder hors-ligne. - 🛡️ **Build agent isolé** : le builder a accès au socket Docker — **NE JAMAIS** le co-poser avec d'autres apps sensibles. Idéalement sur un hôte Docker dédié. - 🛡️ **OAuth scopes minimaux** : `repo` (lecture) pour GitHub, jamais `admin:org` ou `workflow`. - 🛡️ **Isolation des previews** : les previews par PR sont des **environnements éphémères** — s'assurer qu'ils n'ont pas accès à des secrets de prod. - 🛡️ **Backups PostgreSQL** : `storm_db` est critique (état des apps), tester la restauration. - 🛡️ **Logs et audit** : activer les logs de déploiement (qui a push, quel commit, quel environnement). ## 📚 Ressources - [Site officiel](https://www.stormkit.io/) - [Documentation](https://www.stormkit.io/docs) - [GitHub stormkit-io/stormkit-io](https://github.com/stormkit-io/stormkit-io) - [Selfh.st — Development](https://selfh.st/apps/?tag=Development) - [Stormkit Cloud (managed)](https://app.stormkit.io/) ## 🔗 Pages Liées - [[cat-development]] — Catégorie Development - [[app-traefik]] — Reverse proxy HTTPS devant Stormkit et les previews - [[securisation-home-lab]] — Bonnes pratiques de sécurité - [[recettes-docker-compose]] — Templates Docker Compose