gitserver

A very simple git smart HTTP server

32
5
Python

gitserver

build
standard-readme compliant

A very simple git smart HTTP server.

About

This was created as a learning experience on how to create, and possibly use,
a custom git server to upload your code. Also to play with some weird ideas…

Install

We use fastapi to handle all the HTTP interface and uvicorn as the
ASGI
server.

$ pip install -r requirements.txt

Usage

$ uvicorn app:app
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

Now you have an HTTP git server running on localhost:8000. You can push your
code to it simply by adding a remote that points to it:

$ git remote add local http://localhost:8000/reponame
# push to it
$ git push local
# clone from it
$ git clone http://localhost:8000/reponame

Note that the username/password is currently ‘admin’ for both. This is found in the gitserver/app.py file,
and you can edit that file if you’d like to change the username/password.

Note that the directory where the code is saved is created using python’s
tempfile module. Which means, when the program exists, or reloads, it will
be deleted.

Docker

There is also a docker image if you prefer that:

$ docker run --rm -it -p 8000:8000 meyer1994/gitserver

Thanks

This project would not have been possible without the code in the following
repositories. They helped me understand a lot about git http backend.