whatisgithub

What is soft-serve?

charmbracelet/soft-serve — explained in plain English

Analysis updated 2026-06-24

6,905GoAudience · ops devopsComplexity · 3/5Setup · moderate

In one sentence

Soft Serve is a self-hosted Git server you run on your own machine, with a browsable terminal interface over SSH, per-user access controls, Git LFS support, and SQLite or Postgres storage.

Mindmap

mindmap
  root((soft-serve))
    What it does
      Self-hosted Git
      SSH terminal UI
      Access control
    Protocols
      SSH clone
      HTTP clone
      Git protocol
    Storage
      SQLite
      Postgres
      Git LFS
    Setup
      Single binary
      Docker image
      YAML config
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Host private code repositories on your own server without using GitHub or GitLab.

USE CASE 2

Give a small team SSH-based access to shared repositories with per-user permissions and access tokens.

USE CASE 3

Browse repository contents, commit history, and files from a terminal over SSH without a web browser.

USE CASE 4

Store large binary files alongside your Git repositories using built-in Git LFS support.

What is it built with?

GoSQLitePostgresSSHDocker

How does it compare?

charmbracelet/soft-serveyuin/gopher-luadgraph-io/ristretto
Stars6,9056,8976,895
LanguageGoGoGo
Setup difficultymoderatemoderateeasy
Complexity3/52/52/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a server or VPS and SSH key configuration, use Postgres instead of the default SQLite for production durability.

So what is it?

Soft Serve is a self-hosted Git server that you run on your own machine or server. Think of it as your private version of a code hosting site, but one you control entirely and access mainly through a terminal. The standout feature is a text-based interface you can browse over SSH, the protocol that lets you securely connect to remote computers. You can scroll through repositories, read files, and view commit history without ever opening a web browser. Cloning a repository works over SSH, plain HTTP, or the Git protocol, so other people can pull code from your server in whatever way their tools support. Setting it up is straightforward. You install a single program called "soft", run "soft serve" in a terminal, and the server starts. It creates a local folder to store repositories, SSH keys, and its database. On first launch, you point it at your own SSH public key so you become the admin. Access control covers the basics most teams need: SSH key authentication, public and private repositories, per-user collaborator permissions, and access tokens. Anonymous access can be switched on or off. There is also support for Git LFS, which is a way of storing large files alongside a repository without bloating the repository itself. Configuration lives in a YAML file and covers the SSH server, HTTP server, Git daemon, and database. The database can be SQLite for simple setups or Postgres for something more durable. A container image is available if you prefer running it that way. Overall this is a lightweight, self-contained Git hosting tool aimed at developers who want to keep their code on their own infrastructure rather than a third-party service.

Copy-paste prompts

Prompt 1
Walk me through installing Soft Serve on a Linux VPS, configuring it with my SSH public key as admin, and creating my first private repository.
Prompt 2
How do I configure Soft Serve to use Postgres instead of SQLite for a more durable production setup?
Prompt 3
Set up Soft Serve in Docker with a custom SSH port, HTTP access enabled, and Git LFS storage for a small team.
Prompt 4
Add a new collaborator to a specific Soft Serve repository with read-only access using an access token.

Frequently asked questions

What is soft-serve?

Soft Serve is a self-hosted Git server you run on your own machine, with a browsable terminal interface over SSH, per-user access controls, Git LFS support, and SQLite or Postgres storage.

What language is soft-serve written in?

Mainly Go. The stack also includes Go, SQLite, Postgres.

How hard is soft-serve to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is soft-serve for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.