Home

Awesome

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

Versioning and packaging

This tool follows semantic versioning.

Pre-built images are available on github packages:

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:

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 user_a@gmail.com"
      - "ssh-rsa XXXXXX user_a@hotmail.com"
  - 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.