A caching Git HTTP server
npm install git-cache-http-serverA caching Git HTTP server
============================
Mirror remote repositories and serve them over HTTP, automatically updating
them as needed.
Currently supported client operations are fetch and clone. Authentication to
the upstream repository is always enforced (for now, only HTTP Basic is
supported), but public repositories can be used as well.
``
Usage:
git-cache-http-server.js [options]
Options:
-c,--cache-dir
-p,--port
-h,--help Print this message
--version Print the current version
`
The upstream remote is extracted from the URL, taking the first component as
the remote hostname.
Example:
``
git-cache-http-server --port 1234 --cache-dir /tmp/cache/git &
git clone http://localhost:1234/github.com/jonasmalacofilho/git-cache-http-server
If you run your git-cache on a dedicated server or container (i.e. named gitcache), you can then also configure git to always use your cache like in the following example (don't use this configuration on the git-cache machine itself):.
``
git config --global url."http://gitcache:1234/".insteadOf https:// && \
Requirements: nodejs and git.
Install: npm install -g git-cache-http-server
To install as a service, check the doc/git-cache-http-server.service example
service file.
For Systemd init users, this file should not require major tweaks other than
specifying a different than default port number or cache directory. After
installed in the proper Systemd unit path for your distribution, issue:
``
systemctl daemon-reload
systemctl start git-cache-http-server
This is needed only if you change the Haxe source code in src/.
Requirements: haxe and hmm. If you prefer to manage the build dependencies manually, check out hmm.json for the required libraries.
``
hmm install
haxe build.hxml
The current implementation is somewhat oversimplified; any help in improving it
is greatly appreciated!
References:
- Transfer protocols on the Git Book
- Git documentation on the HTTP transfer protocols
- Source code for the GitLab workhorse
- Source code for git-http-backend`