Spunto Liteun conteneur, votre machine

Des environnements de dev,
sur votre propre machine.

Un conteneur qui parle directement à votre socket Docker. Décrivez un projet une fois — image de base, features devcontainer, dépôts, ports, hooks, secrets — puis lancez-en des espaces de travail jetables, chacun avec VS Code dans le navigateur et un terminal qui survit à un rechargement. Confiez-en un à Claude Code, Codex ou Mistral Vibe et relisez ce qu’il a fait. Aucun cloud dans la boucle, aucun compte, rien qui appelle la maison.

MITun conteneuraucun comptevotre socket Dockeramd64 · arm64
your machine
$ docker run -d --name spunto-lite -p 80:80 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v "$HOME/.ssh:/host-ssh:ro" \
  -v spunto-lite-ssh-agent:/run/spunto-ssh-agent \
  -v spunto-lite-data:/app/data \
  ghcr.io/spuntodotnet/spunto-lite:latest

puis ouvrez http://localhost — ni inscription, ni écran de connexion

01 — Ce que vous obtenez

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 : fermer l’onglet ne tue pas le build, et l’historique revient
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 : le lancement suivant est à chaud
vos clés
~/.ssh monté en lecture seule : tout hébergeur git que votre clé atteint clone et pousse, phrase de passe comprise
secrets
globaux ou par projet, chiffrés au repos, injectés en variables d’environnement au démarrage
stockage
SQLite dans un volume — sauvegardez-le et vous avez sauvegardé toute l’installation
routage
worker-<id>.localhost pour l’IDE, worker-<id>-<port>.localhost pour chaque port qui écoute
02 — Trois minutes, du lancement à l’éditeur

é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.

$ docker run … ghcr.io/spuntodotnet/spunto-lite

étape 2

Décrivez un projet

Partez d’un modèle (Next.js, Vite, Astro, FastAPI, Express, Docker-in-Docker) ou pointez-le sur votre propre dépôt et votre image de base. Features, ports, hooks et secrets vivent tous dans la spec.

→ project saved · version 1 · image building

é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.

→ worker-a1b2c3.localhost · ready

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. Posez une fois une vraie DATA_ENCRYPTION_KEY (openssl rand -hex 32) : c’est avec elle que vos secrets sont chiffrés.

docker-compose.yml
services:
  spunto-lite:
    image: ghcr.io/spuntodotnet/spunto-lite:latest
    restart: unless-stopped
    ports: ["80:80"]
    environment:
      DATA_ENCRYPTION_KEY: ${DATA_ENCRYPTION_KEY}
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - $HOME/.ssh:/host-ssh:ro
      - spunto-lite-ssh-agent:/run/spunto-ssh-agent
      - spunto-lite-data:/app/data

volumes:
  spunto-lite-data:
  spunto-lite-ssh-agent:
03 — Agents

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 jetez quand il a fini.

Écrivez ce que vous voulez sur un projet, choisissez le harnais et le modèle, et un worker du pool du projet reçoit la session. Vous suivez la réponse pendant qu’elle s’écrit, vous répondez ou l’interrompez, lisez le diff depuis la machine elle-même, ouvrez un shell dessus, puis Accept ou Drop.

Comment marchent les tâches →
harnais
Claude Code, Codex et Mistral Vibe — leurs SDK officiels, cuits dans l’image du projet
clés
ANTHROPIC_API_KEY, OPENAI_API_KEY ou MISTRAL_API_KEY, comme un secret ordinaire
sans git imposé
aucune branche n’est créée pour la tâche : l’agent en fait une s’il en a besoin, et la nomme
serveurs MCP
Notion, Linear… connectés une fois en OAuth ; le worker ne détient jamais le jeton de l’éditeur
04 — Partagé sur une machine

Un Postgres pour tous les projets, pas un par espace de travail.

Déclarez une dépendance au long cours une fois dans Services — modèles pour Postgres, MySQL, Redis, Elasticsearch, Kibana, MinIO et Mailpit — et chaque worker de chaque projet l’atteint par DNS, à son nom. Un projet peut aussi monter des volumes partagés dans tous ses workers : un store pnpm, ~/.m2, un jeu de données.

worker-a1b2c3 — bash
# from any workspace
$ psql -h postgres -U postgres
$ curl http://elasticsearch:9200
$ echo $SPUNTO_SVC_POSTGRES
postgres:5432
05 — Ce que Lite n’est pas, exprès

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.
  • !Votre machine seulement. Pas de parc de serveurs, pas de machines cloud à louer — c’est Spunto Cloud.

lite ou cloud — toute la différence

LiteCloud
Où il tourneune machine à vousvos machines, ou Spunto Cloud
Environnements de dev✓✓
Tâches d’agent✓✓
Installationun conteneurrien à installer
Coûtgratuit — MITà la minute où une boîte tourne
Comptes et équipes—organisations, membres, rôles
Authentification devant—connexion Google, accès par sandbox

La spec que vous écrivez dans Lite — image, features, hooks, ports — est le format de Spunto Cloud : exportez un projet de l’un, importez-le dans l’autre.

Voir Spunto Cloud →

Essayez-le le temps de lire cette page.

C’est sous licence MIT et l’image est publique : essayer ne coûte que de l’espace disque.