9

There are a number of questions about GitHub replacements here.

I am looking for one, too. However, I am not willing to install all the myriad of cruft that many of these tools like Gitlab require … no ruby+postgresql+nginx+redis+unicorn+sidekiq+node.js …

I know that is currently highly popular to string together any technology you can find. Best also mix 10 different programming languages, too. WTF? The insanity is best seen by the manual gitlab installation description and the Arch Linux gitlab installation. Why use both a SQL and a NoSQL database?!? And an own web server unicorn, plus nginx? Next they will add Elasticsearch, I'm pretty sure. In case you have several TB of repositories to index. Stop pretending this is "big data" …

But for having a software run a key business part for the next x years, I'd like to have something less fancy and more reliable …

Any recommendations for a low-dependencies self-hosted GitHub alternative? Open-source only, and Linux is a must (so e.g. Gitstack is out).

My wishlist:

  1. Low dependencies. In particular, no Ruby, PHP, Node.js or Elasticsearch. No pretending this is big data; Git repositories that are over 1 GB are broken by design.

  2. Good web-frontend for Git, with forking and pull requests. No code editing in browser needed.

  3. Issue tracking is a plus, but not a must (but usually, pull requests implies some kind of issue management).

  4. Access control. At least on a repository level, preferably on a branch level. Private and public repositories must be supported.

  5. Works with standard tools instead of all the fancy tool-of-the-day that disappear into oblivion in a year.

  6. Open-source. To ensure long-term viability, and I don't have a budget I could spend. Plus, using closed-source for open-source-development is kind of bastardization, isn't it? Real open-source -- not one where the backing company decides to make it a commercial tool next year.

In the end, I would like it to be like Git. Powerful, yet simple, minimalistic and reliable. Running everywhere, instead of pulling in a bag of dependencies that can and will eventually break. If you know Git, then you know that a lot of the functionality are just frontends for "rebase".

  • 1
    Probably off-topic, but: have a look at Fossil instead. While it's specifically not based on git (yikes!), it's rightly called Github-in-a-box. Suitable for small teams; has a low learning curve, integrated wiki and bug tracker, and you'd never find anything easier to set up. (Provides --git export still, for syncing.) – mario Jan 5 '15 at 23:48
  • 1
    Sorry, but git is a must. – Anony-Mousse Jan 6 '15 at 1:32
  • This reads quite a bit like a rant, frankly. – Huey Jun 5 '15 at 10:43
  • GitLab provides Omnibus packages, which are extremely easy to set up. I manage several GitLab installations via the Omnibus packages and have very few complaints. – Jonathon Reinhart Feb 9 '17 at 23:20
  • "Fat" packages is the wrong thing™. It doesn't reduce overhead, bugs, compatibility, upgrade, maintenance issues that come from stacking too many packages. – Anony-Mousse Feb 10 '17 at 8:38
3

I have been quite happy with Gitblit. It requires Java, but that is literally the only dependency. It is totally self-contained, unless you want to set up your own Servlet container and configure it yourself, which it also allows.

1

At this point, Gogs (https://github.com/gogits/gogs) might be a good answer for you. Its written in golang, low dependencies, low resource requirements, single binary, little configuration, no fancy features but very robust.

1

RhodeCode works well for us.

As for your wishlist:

Low dependencies. In particular, no Ruby, PHP, Node.js or Elasticsearch. No pretending this is big data; Git repositories that are over 1 GB are broken by design.

RhodeCode uses Elasticsearch, which is great in our case, since we have legacy repos of 25+ Gb.

Good web-frontend for Git, with forking and pull requests. No code editing in browser needed.

It has a neat UI, with in-browser code editing. RhodeCode Interface

Issue tracking is a plus, but not a must (but usually, pull requests implies some kind of issue management).

We use Jira, but I know that RhodeCode integrates with RedMine and a bunch of others tools.

Access control. At least on a repository level, preferably on a branch level. Private and public repositories must be supported.

Control can be set at repository/branch/user group level. LDAP, Active Directory, 2-FA, etc. are supported as well.

Works with standard tools instead of all the fancy tool-of-the-day that disappear into oblivion in a year.

From what I know, it integrates with the most tools, which are now de-facto industry standard: RedMine, Jira, Slack, HipChat, etc.

Open-source. To ensure long-term viability, and I don't have a budget I could spend. Plus, using closed-source for open-source-development is kind of bastardization, isn't it? Real open-source -- not one where the backing company decides to make it a commercial tool next year.

RhodeCode CE (Community Edition) is free and open source, RhodeCode EE (Enterprise Edition) has a commercial license. From my point of view, the fact of having a commercial product is the best proof of long-term viability for an open source one.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.