Deploy soft-server

A tasty, self-hostable Git server for the command line.

Deploy soft-server

Just deployed

/var/lib/postgresql/data

Just deployed

/soft-serve

Soft Serve

A nice rendering of some melting ice cream with the words ‘Charm Soft Serve’ next to it

Soft Serve is a self-hostable Git server for the command line. It provides a slick, SSH-accessible TUI (Terminal User Interface) for browsing repositories, viewing READMEs, and managing users. It allows you to create repositories on demand via git push and configure the system entirely through Git, eliminating the need for a web interface.

Soft Serve screencast

Deploy and Host

Hosting Soft Serve involves running a single Go binary that acts as a customizable SSH server. Unlike traditional Git servers with heavy web UIs, Soft Serve is designed for the terminal.

  • Persistence: It requires a persistent volume to store repositories, keys, and the database.
  • Configuration: Managed via a special Git repository; you clone it, edit the config/ACLs, and push back to apply changes.
  • Networking: It exposes SSH, HTTP, and Git protocols. On Railway, you primarily interact with it via the exposed TCP (SSH) port.

About Hosting Soft Serve

Hosting Soft Serve involves running a single Go binary that acts as a custom SSH server. It is lightweight but requires persistent storage to retain your repositories and database. Unlike traditional web-based Git servers, Soft Serve is configured via "GitOps": you clone a special administrative repository, edit the config or access lists, and push changes back to apply them. On Railway, the service requires a TCP Proxy to expose the SSH interface, allowing users to connect, push code, and access the TUI securely using their existing SSH keys.

Common Use Cases

  • Personal Git Server: Maintain a private, lightweight collection of repositories accessible from anywhere via SSH.
  • Team Collaboration: Share code with a small team using SSH keys for authentication and simple role-based access control.
  • CLI-First Workflow: Browse code, view READMEs , and manage projects without ever leaving the terminal.

Dependencies for Soft Serve Hosting

  • Git: Required locally to push/pull repositories and manage server configuration.
  • SSH Client: Required to connect to the server's TUI and perform Git operations.

Deployment Dependencies

Implementation Details

Initial Setup: You must set the SOFT_SERVE_INITIAL_ADMIN_KEYS environment variable to your public SSH key (e.g., content of ~/.ssh/id_rsa.pub) before the first deployment. This authorizes you as the initial administrator.

Connection: Once deployed, Soft Serve will be accessible via the TCP proxy provided by Railway. Connect using:

ssh -p  

Why Deploy Soft Serve on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Soft Serve on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


Host your own git server with Soft Serve!

This video provides a quick visual walkthrough of setting up and using Soft Serve, demonstrating its TUI and configuration workflow which complements the deployment instructions.


Template Content

More templates in this category

View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

View Template
(v1) Simple Medusa Backend
Deploy an ecommerce backend and admin using Medusa

View Template
peppermint
Docker-compose port for peppermint.sh