Skip to content

A Git source code management tool powered by Elixir with easy installation & high extensibility.

License

Notifications You must be signed in to change notification settings

redrabbit/git.limo

Repository files navigation

Git.limo

Elixir CI GitHub license Github Issues

A Git source code management tool written in Elixir.

  • Simple yet intuitive web interface.
  • Git HTTP and SSH support.
  • Fully integrated GraphQL API.
  • Customizable Git storage backend.
  • Distributed setup (cluster).
  • Issue tracker.
  • Code reviews.
  • Continuous integration.

See the Getting Started guide and the online documentation.

Install dependencies

First, ensure you have libgit2 installed on your system:

OSX

brew install libgit2

Ubuntu

sudo apt-get install libgit2-dev

You will also need Node.js to compile Web assets and PostgreSQL to store your application data.

Clone and compile

Clone the latest version of the project:

git clone https://github.com/almightycouch/gitgud.git

Download Hex dependencies and compile everything:

mix deps.get
mix compile

Install Javascript dependencies

Install all NPM packages required by Webpack to generate Web assets:

npm install --prefix apps/gitgud_web/assets

Generate SSH public keys

In order to provide SSH as a Git transport protocol, you must generate a valid SSH public key for the server:

ssh-keygen -m PEM -t rsa -f apps/gitgud/priv/ssh-keys/ssh_host_rsa_key

Setup database

The last step before running the server is to create and initialise the SQL database:

mix ecto.setup

Run server

Finally, start both HTTP (port 4000) and SSH (port 8989) endpoints:

mix phx.server

Illustration by @ahruygt