
Self-hostable Git server with SSH-accessible TUI for command-line repository management and browsing.
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.
# 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
