Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is up to date with moontography/jupiter-git:master.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A small git server that persists repositories (as a gzipped tarball) in the Jupiter blockchain. When you run this server, you can begin adding git remotes to your project repositories to this server and push/pull/clone as you would any git remote.

$ git remote add jup
$ git push jup master

Username for '': JUP-XXX-XXX-XXXX
Password for 'http://JUP-XXX-XXX-XXXX@localhost:8000':
Enumerating objects: 379, done.
Counting objects: 100% (379/379), done.
Delta compression using up to 4 threads
Compressing objects: 100% (374/374), done.
Writing objects: 100% (379/379), 139.07 KiB | 3.31 MiB/s, done.
Total 379 (delta 240), reused 0 (delta 0)
remote: Resolving deltas: 100% (240/240), done.
 * [new branch]      master -> master

Install & Run

The quickest way to run the server is with docker and docker-compose. If you have these installed, you should be able to execute the following in a terminal and get a server running on

$ git clone
$ cd jupiter-get
$ touch .env
$ docker-compose up

Creating jupiter-git_web_1 ... done
Attaching to jupiter-git_web_1
web_1  |
web_1  | > jupiter-git@0.0.1 start /usr/jupiter-git
web_1  | > node dist/bin/jupiter-git.js
web_1  |
web_1  | 2021-03-19 01:20:32.821  MASTER  start..
web_1  | 2021-03-19 01:20:32.840  MASTER  ..started at port 8000
web_1  | 2021-03-19 01:20:32.841  WORKERS  start..
web_1  | 2021-03-19 01:20:32.851  WORKER #1  ..started
web_1  | {"name":"jupiter-git","hostname":"1d24bc879d10","pid":28,"level":30,"msg":"listening on *:8000","time":"2021-03-19T01:20:33.362Z","v":0}


Docker & Docker Compose

There's a Dockerfile to allow you to build the container and deploy in any infrastructure or orchestration engine you'd like to use. However, for a really simple deployment that isn't supporting tons of users, you can just deploy using the normal docker compose config.

You can use -f when running docker-compose if you'd like to map your local machine's file system build folder to a volume in the container to ease development when making changes. If you want to deploy jupiter-git to production/a public URL, it's recommended to use the normal docker-compose.yml configuration to ensure the build and execution is entirely inside the container.

$ # no need to specify a file w/ `-f` since docker-compose.yml is the default
$ docker-compose up


Heroku makes it dead simple to deploy web applications from Docker containers.


  • Heroku CLI installed
  • A heroku app linked as a git remote in your repo

Deploy to Heroku

$ heroku container:push web
$ heroku container:release web

Tips w/ cryptocurrency

I love FOSS (free and open source software) and for the most part don't want to charge for the software I build. It does however take a good bit of time keeping up with feature requests and bug fixes, so if you have the desire and ability to send me a free coffee, it would be greatly appreciated!

  • Bitcoin (BTC): 3D779dP5SZo4szHivWHyFd6J2ESumwDmph
  • Ethereum (ETH and ERC-20 tokens): 0xF3ffa9706b3264EDd1DAa93D5F5D70C8f71fAc99
  • Jupiter (JUP) mainnet: JUP-TUWZ-4B8Z-9REP-2YVH5


Git server to support a backend of storing repos and files on the Jupiter blockchain







No releases published


No packages published


  • TypeScript 98.5%
  • Dockerfile 1.5%