Soft Serve – Le serveur Git auto-hébergé dans le terminal
Monter son propre serveur Git, ça rime souvent avec déployer une usine à gaz bourrée d’options qu’on n’utilisera jamais. Heureusement, Soft Serve prend le contre-pied total de tout ça ! Ce serveur Git self-hosted de charmbracelet (la bande derrière Bubble Tea, Glow,
Freeze
et Gum) fait sa vie dans le terminal et se pilote via SSH.
Un coup de brew install charmbracelet/tap/soft-serve (ou Docker, ou go install), vous lancez soft serve et hop, vous voilà avec un serveur Git complet qui tourne grâce à un seul binaire. Pour parcourir vos dépôts, pas besoin de navigateur, vous vous connectez juste en SSH et une petite interface en mode texte s’ouvre direct dans votre terminal. Genre ssh git.chezvous.net, et vous voilà en train de naviguer dans l’arborescence, lire les fichiers avec coloration syntaxique, fouiller les commits. Le tout sans quitter le shell !
Créer un dépôt, ça se fait en une ligne :
ssh -p 23231 localhost repo create mon-projet
Ou alors vous pouvez pousser directement et soft-serve fabrique le dépôt à la volée :
git remote add origin ssh://localhost:23231/mon-projet
git push origin main
Le 23231 dans l’URL, c’est le port SSH par défaut de soft-serve, et vous pouvez le changer dans la config si jamais il vous gêne.
Côté accès, l’autorisation se gère avec les clés SSH publiques. Vous disposez de 4 niveaux de droits (no-access, read-only, read-write et admin-access), vous ajoutez les clés de vos potes ou collègues, et c’est réglé. Attention quand même, par défaut l’accès anonyme en lecture seule est activé, donc pour des dépôts un peu sensibles, basculez le réglage anon-access sur no-access avant de tout pousser. D’ailleurs le serveur cause aussi en HTTP et en Git protocol si vous préférez cloner autrement, avec des tokens d’accès pour le HTTP.
Soft-serve ne cherche surtout pas à remplacer une forge puisqu’on ne peut pas faire de pull requests, y’a pas de système d’issues, ni de CI intégrée. Si vous voulez tout cet attirail,
Forgejo
restera le bon choix…
Soft-serve ne fait UNE chose : héberger vos dépôts Git proprement, accessibles en SSH, sans chichi. Pour 5 repos perso ou le dépôt d’une petite équipe sans revue formelle, c’est pile poil ce qu’il faut si vous aimez le minimalisme.
Il gère également le Git LFS pour les gros fichiers, les webhooks pour brancher vos automatisations, les hooks Git côté serveur, et même une fonction mirror qui récupère un dépôt distant et le resynchronise tout seul toutes les 10 minutes. Très pratique donc pour garder une copie de vos dépôts GitHub en cas de pépin. Et pour le stockage, derrière c’est SQLite par défaut, ou PostgreSQL si vous voyez plus grand.
Notez que pour le moment, soft-serve n’accepte pas les nouvelles clés RSA en SHA-256, mais uniquement les vieilles RSA en SHA-1 ou des clés Ed25519. Donc si votre connexion SSH se fait jeter sans raison apparente, c’est sûrement ça. Le plus simple, c’est donc de générer une clé Ed25519 et de ne plus y penser…
Et tout ça tombe à pic cet outil je trouve parce qu’entre les
Pays-Bas qui migrent vers Forgejo
et
Ghostty qui claque la porte de GitHub
, rapatrier son code chez soi c’est un peu ce qu’on devrait tous faire en ce moment.
C’est codé en Go, sous licence MIT, et c’est dispo aussi bien sur Linux que macOS et Windows ici :
soft-serve
!

Leave a Comment