Home
Softono

Minimal Git Server

Open source MIT Docker
45
Stars
4
Forks
0
Issues
1
Watchers
5 months
Last Commit

 About Minimal Git Server

Lightweight git server with a basic CLI to manage repositories, supporting multiple accounts and running in a container.

Platforms

Web Self-hosted Docker

Languages

Docker

Need Help Installing Minimal Git Server?

We provide expert installation service for this software. Our team will install, configure, and secure Minimal Git Server on your server. plans start at just $30.

Minimal Git Server

View on GitHub

minimal-git-server

License Tag Stars

Originally inspired by https://github.com/jkarlosb/git-server-docker

This tool lets you run a minimal git server with a basic CLI to manage repositories, all in a container based on a single configuration file.

Features

  • support multiple accounts (config.yml)
  • basic CLI to manage repositories (list/create/rename/remove/...)
  • easy to use in scripts
  • tested on docker and podman

Versioning and packaging

This tool follows semantic versioning.

Pre-built images are available on github packages:

  • ghcr.io/mcarbonne/minimal-git-server:main (main branch)
  • ghcr.io/mcarbonne/minimal-git-server:dev (dev branch)
  • ghcr.io/mcarbonne/minimal-git-server:latest: latest tagged version
  • ghcr.io/mcarbonne/minimal-git-server:x.x.x
  • ghcr.io/mcarbonne/minimal-git-server:x.x
  • ghcr.io/mcarbonne/minimal-git-server:x

For automatic updates (watchtower, podman-auto-update...), using the lastest major tag available (ghcr.io/mcarbonne/minimal-git-server:2) is recommanded to avoid breaking changes.

Minimal configuration

This container requires 3 volumes in order to work:

  • /srv/ssh to persist generated server keys
  • /srv/git to store repositories
  • /srv/config.yml to set up accounts, allowed public keys...
docker run -v .../ssh:/srv/ssh -v .../git:/srv/git -v .../config.yml:/srv/config.yml:ro \
        --name minimal-git-server -d -p 20222:22 ghcr.io/mcarbonne/minimal-git-server:2

config.yml

external_hostname: localhost
external_port: 20222
accounts:
  - user: user_a
    uid: 12345
    keys:
      - "ssh-rsa XXXXXX [email protected]"
      - "ssh-rsa XXXXXX [email protected]"
  - user: user_b
[...]

Basic Usage

To manage your repositories, simply log in: Basic Usage

How to script ?

You can easily embed any supported command in your scripts:

$ ssh ACCOUNT@HOSTNAME -p PORT create project1/my_repo

Have a look at test.sh for more examples.