kmxgit is a Git server written in C and Elixir.
Please see git-auth README.md.
git clone https://git.kmx.io/kmx.io/kmxgit.git
cd kmxgit
mix deps.get
mix ecto.setup
mix phx.server
or inside IEx with iex -S mix phx.server
Now you can visit localhost:4000
from your browser.
To setup public access repositories on HTTP or HTTPS you need to setup your web server to serve certain requests with git-http-backend.
First you need to setup
fcgiwrap to serve on 127.0.0.1:9001
.
Then in your nginx server config :
location ~ ^(.*/info/refs|.*/git-upload-pack)$ {
fastcgi_pass 127.0.0.1:9001;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/local/libexec/git/git-http-backend;
fastcgi_param GIT_PROJECT_ROOT ~git;
fastcgi_param PATH_INFO $1;
}