soft-serve logo

soft-serve

Self-hostable Git server with SSH-accessible TUI for command-line repository management and browsing.

install

Soft Serve is a self-hostable Git server that provides repository management and browsing through SSH. The tool serves Git repositories with support for cloning over SSH, HTTP, and Git protocols, while offering a terminal user interface accessible via SSH connections. Users can browse repositories, view files and commits, and manage access control without requiring a web browser.

The server supports Git LFS with both HTTP and SSH backends, allows repository creation on demand through SSH or git push, and includes access control features with SSH public key authentication. Users can set repositories as public or private, add collaborators, and manage user access tokens. The tool also provides syntax highlighting and line numbers when viewing files over SSH.

Soft Serve targets developers and teams who prefer command-line Git workflows and want to host their own Git infrastructure. It includes database support for both SQLite and PostgreSQL, comprehensive configuration through YAML files or environment variables, and can be deployed as a systemd service. The server exposes multiple protocols simultaneously - SSH on port 23231, HTTP on 23232, and Git daemon on 9418 by default.

Installation

# via Homebrew
brew install charmbracelet/tap/soft-serve
# via Go
go install github.com/charmbracelet/soft-serve/cmd/soft@latest
# via APT
sudo mkdir -p /etc/apt/keyrings && curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg && echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list && sudo apt update && sudo apt install soft-serve

Soft Serve screencast

Alternatives & related tools

add a badge to your README

Maintain soft-serve? Show that it's featured on trmn. The badge links back to this page.

Featured on trmn
Markdown
[![Featured on trmn](https://www.trmn.sh/badge/soft-serve.svg)](https://www.trmn.sh/tools/soft-serve?utm_source=badge)
HTML
<a href="https://www.trmn.sh/tools/soft-serve?utm_source=badge"><img src="https://www.trmn.sh/badge/soft-serve.svg" alt="Featured on trmn" height="20"></a>