minimal-git-server
Minimal containerized Git server exposing repositories over SSH, managed via a simple CLI and YAML config for accounts and SSH keys.
minimal-git-server is a small, SSH-based Git server provided as a container image. It exposes repositories over SSH and is controlled via simple CLI commands mapped to SSH subcommands, with accounts and keys defined in a single YAML configuration.
Key Features
- SSH-first Git hosting with repositories stored on a mounted data volume
- Single YAML config file to define accounts, UIDs and allowed public keys
- CLI-style repository management via SSH commands (list/create/rename/remove)
- Lightweight implementation using shell scripts and a container image for Docker/Podman
- Persists server SSH keys and repositories on host-mounted volumes for easy backups
- Designed to be scriptable and automatable from CI or local scripts
Use Cases
- Host private Git repositories for small teams or personal projects on a local server
- Provide simple Git endpoints for CI pipelines or automation scripts that need push/pull access
- Quickly spin up ephemeral or lab Git servers for testing and demos without heavy tooling
Limitations and Considerations
- SSH-only access model; no built-in HTTP(S) or web UI for repository browsing or management
- Minimal access control: permissions are account-level via config and SSH keys; no fine-grained per-branch ACLs or web-based management
- Not a full forge: lacks features such as issues, pull-request UI, user management UI, or built-in hook management beyond raw Git hooks
minimal-git-server is intended for situations that need a simple, containerized Git endpoint with easy scripting and minimal operational overhead. It is best suited to small teams, automation scenarios, and homelab use where advanced forge features are unnecessary.

