Esta página se muestra en inglés. Una traducción al español está en curso.
ScriptsApr 26, 2026·3 min de lectura

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.

assetLangBanner.body

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

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados