Pas un script de dotfiles. Pas un IDE hébergé.
Une petite app qui transforme « monte-moi un environnement propre pour ça » en bouton, sur du matériel que vous payez déjà — et qui le fait disparaître quand vous avez fini.
- éditeur
- code-server dans chaque espace de travail, sur son propre sous-domaine — un IDE complet dans un onglet
- terminal
- persistant : il survit à un rechargement de la page, et c’est le même shell que celui qu’on donnerait à un agent
- projets
- des specs à la devcontainer : image de base, features, extensions, ports, postCreate/postStart
- versions
- modifier un projet incrémente sa version et pré-construit l’image, donc le lancement suivant est à chaud
- vos clés
- ~/.ssh monté en lecture seule et injecté, pour que git push garde votre identité
- secrets
- par projet et par utilisateur, stockés chiffrés, injectés dans l’environnement au démarrage
- stockage
- SQLite dans un volume — aucun service de base de données à faire tourner à côté
- routage
- le même processus sert de reverse proxy pour worker-<id>.localhost et héberge le socket du terminal
étape 1
Lancez le conteneur
Un docker run avec le socket Docker monté — ou le fichier compose ci-dessous. Puis ouvrez http://localhost. Pas d’étape de création de compte, parce qu’il n’y a pas de comptes.
étape 2
Décrivez un projet
Partez d’un modèle (Next.js, Vite, Astro, FastAPI, Express, docker-compose) ou pointez-le sur votre propre dépôt et votre image de base. Features, ports, hooks et secrets vivent tous dans la spec.
étape 3
Lancez un espace de travail
Un conteneur voisin démarre à partir de cette spec, clone vos dépôts, lance vos hooks et vous donne un éditeur et un terminal sur leur propre sous-domaine.
si vous préférez un fichier
Ou la version compose.
La même chose, plus facile à garder à côté de ce que vous faites déjà tourner. Le volume de données contient le fichier SQLite — sauvegardez-le et vous avez sauvegardé toute l’installation.
services:
spunto-lite:
image: ghcr.io/spuntodotnet/spunto-lite:latest
ports: ["80:80"]
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- $HOME/.ssh:/host-ssh:ro
- spunto-lite-data:/app/data
volumes:
spunto-lite-data:Trois choses qu’il ne fera pas.
Aucune n’est sur une feuille de route. C’est la frontière entre un outil qu’on fait tourner sur son portable et une plateforme dont dépend une équipe, et la tracer nettement est la seule façon pour Lite de rester aussi petit.
- !Pas d’écran de connexion. Il détient votre socket Docker : gardez-le sur localhost ou sur un réseau de confiance — jamais sur Internet.
- !Une machine, une personne. Pas d’organisations, pas de rôles, pas d’espace partagé avec un collègue.
- !Environnements de dev seulement. Pas de logs ni de statistiques sur un parc de machines — c’est Spunto Cloud.
lite ou cloud — toute la différence
La spec que vous écrivez dans Lite — image, features, hooks, ports — a la même forme que celle de Cloud : passer à Cloud, c’est recréer un projet, pas migrer.
Un endroit sûr où laisser tourner un agent.
Un agent de code a besoin d’un shell qui peut installer des choses, d’un serveur qu’il peut démarrer et d’un dépôt qu’il peut casser. Lui donner tout ça sur votre portable, c’est finir avec un démon mystère et une base de données corrompue. Lui donner un espace de travail Lite, c’est juste un conteneur — son propre réseau, ses propres ports, son propre clone — que vous supprimez quand il a fini.
Et comme le tout est un conteneur sur votre propre machine, laisser un agent essayer quelque chose ne coûte rien et ne divulgue rien.