Cette page est affichée en anglais. Une traduction française est en cours.
SkillsApr 26, 2026·3 min de lecture

Soft Serve — Self-Hosted Git Server with a Beautiful TUI

Soft Serve is a lightweight, self-hosted Git server by Charm that provides SSH-based repository hosting with a built-in terminal user interface. It supports access control, a web interface, and Git hooks, all in a single Go binary with no database required.

Prêt pour agents

Installation agent prête

Cet actif peut être installé après choix du runtime, vérification du plan et exécution de la commande adaptée.

Native · 98/100Policy : autoriser
Surface agent
Tout agent MCP/CLI
Type
Skill
Installation
Single
Confiance
Confiance : Established
Point d'entrée
Soft Serve Git Server
Commande d'installation directe
npx -y tokrepo@latest install 15afa0db-4106-11f1-9bc6-00163e2b0d79 --target codex

À exécuter après confirmation du plan en dry-run.

Introduction

Soft Serve is a Git hosting server built by the Charm team that combines SSH-based repository access with a polished terminal UI for browsing code, commits, and branches. It is designed for small teams and personal use where a full Gitea or GitLab instance is more than needed.

What Soft Serve Does

  • Hosts Git repositories accessible over SSH with public-key authentication
  • Provides a browsable terminal UI when you SSH into the server
  • Serves a read-only web interface for viewing repos in a browser
  • Supports access control with admin, read-write, and read-only roles
  • Runs server-side Git hooks for custom automation on push events

Architecture Overview

Soft Serve runs as a single Go binary that embeds an SSH server (powered by the Wish framework), a Git backend, and an optional HTTP server. Repositories are stored as bare Git repos on the filesystem. The TUI is rendered server-side using Bubble Tea and Lip Gloss, streamed to the client over the SSH session. Configuration and access control are managed through a special admin repo or a YAML config file.

Self-Hosting & Configuration

  • Install via Homebrew, Go install, or download a binary from GitHub Releases
  • Run soft serve to start with default settings on port 23231 (SSH) and 23232 (HTTP)
  • Add SSH public keys for users via the admin settings repo or CLI
  • Configure repos, access levels, and descriptions in the YAML config or via the admin repo
  • Deploy with Docker using the official charmcli/soft-serve image

Key Features

  • Beautiful terminal UI for browsing repos, commits, diffs, and branches
  • Single binary with no database, web framework, or external dependencies
  • SSH-native with public-key authentication and per-repo access control
  • Built-in web interface for read-only repository browsing
  • Git LFS support for large file storage

Comparison with Similar Tools

  • Gitea — Full-featured forge with issues and PRs; Soft Serve focuses on lightweight Git hosting
  • Gogs — Similar to Gitea but lighter; Soft Serve is even simpler with no web-based workflows
  • cgit — Read-only web viewer; Soft Serve adds SSH hosting and a TUI
  • git-daemon — Bare-bones Git protocol; Soft Serve adds authentication, access control, and a browsable interface

FAQ

Q: Can I use Soft Serve as my primary Git host? A: For personal projects and small teams, yes. For issue tracking and pull requests, pair it with a separate tool or use Gitea.

Q: Does it support Git over HTTPS? A: The web interface is read-only. Push and pull operations use SSH.

Q: How do I manage user access? A: Add SSH public keys and assign roles (admin, read-write, read-only) via the admin settings repository or config file.

Q: Can I mirror repos from GitHub or GitLab? A: Soft Serve does not have built-in mirroring. Use a cron job with git fetch --mirror to sync externally.

Sources

Fil de discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires