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
+144
View File
@@ -0,0 +1,144 @@
---
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