Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I need a self-hosted replacement for Github. It is crucial it works on firewalle

ID: 661735 • Letter: I

Question

I need a self-hosted replacement for Github. It is crucial it works on firewalled intranet, with no access to the Internet (for example, styles, license checks etc.).

Relatively good web UI: source code and commit browsing are a must.
Support for git and/or mercurial. Support for both is a plus.
SSH shell (repositories must be accessible over ssh, instead of just http, even though at least git supports all operations over http relatively well)
Permissions: at least
private/public repositories
read-only and full access
Same permission set for web UI and for SSH (when granting/modifying permissions, it should be reflected to both)
preferably integration to LDAP (both users and groups for permissions)
Pull requests (aka. merge request)
Administration tools: creating repositories, granting access
Simple issue tracker: creating tickets, commenting, closing, tags/labels
Preferably search, including tickets, users, projects, filenames and inside source code
Preferably forking from web UI
Preferably runs in Linux

Must be either open source (which means it is okay if it is missing some minor functionality) or affordable (>2400

Explanation / Answer

We've used GitLab for over a year to host projects of my students.

TL;DR: try the demo yourself!

I must say I am really satisfied.

As an iteration through your requirement is encouraged on this site, I'll do just that.

Relatively good web UI: You can browse source and history, statistics (global and per user) and graphs of commits (like "network" on Github). You can comment each line of commit from GUI, it's a great feature! Sorry, but I can't provide any screenshots, I'd have to manually anonymise them. Generally it's similar to Github.

Support for git and/or mercurial. Support for both is a plus. Git only.

SSH shell (repositories must be accessible over ssh, instead of just http, even though at least git supports all operations over http relatively well): It's like in Github. HTTP for read-only access, SSH for read-write.

Permissions: at least

private/public repositories: It's there.

read-only and full access: You can define roles (I believe the defaults are master, developer, reporter, guest).

Same permission set for web UI and for SSH (when granting/modifying permissions, it should be reflected to both): I believe it works just like that, but as I don't have admin access right now, it's hard to test. But, again, it's like github.

preferably integration to LDAP (both users and groups for permissions): We have that. Everyone logs in via ldap, staff with more privileges than students. BUT I can't really tell if that was very easy, it's just possible.

Pull requests (aka. merge request): Present.

Administration tools: creating repositories, granting access: All from web interface, with a nice searching for users and ability to define groups of users.

Simple issue tracker: creating tickets, commenting, closing, tags/labels: Yep, it's there. Not sure what do you mean by tags tough, couldn't see anything like this. Milestones?

Preferably search, including tickets, users, projects, filenames and inside source code: This would be probably the least fancy feature of gitlab. You can search for users/projects/groups, you can find the content of files, but not a filename. I find it quite clumsy.

Preferably forking from web UI: Present.

Preferably runs in Linux: Obviously ;-)

Upgrade process: it's pretty straightforward if you know your system. Every release has it's own upgrade guide, which is always a bit related to the default, recommended setup (i.e. paths, users, commands etc). If you have a non-standard (in their terms) system, if you customize your setup, you'll have to spend a little while to pimp everything up, but it's never complicated - mainly a new clone, run few scripts and you're done. Never had any problems, but I stopped following the process quite a long time ago. UPDATE Gitlab now includes (as of 6.4.2) an easy upgrade script. Assuming you have the standard system layout, the actual upgrade process is now a single command.

It's under active development with a new release every month, so it's definitely worth trying. It's open-source, free for commercial use.

An Internet connection is not required for Gitlab to work. You will need Internet to set up Gitlab because it downloads its dependencies from RubyGems. Alternatively, you can build a RubyGems mirror, or do the install on another server and copy the complete install directory (by default /home/git/) to this server.

Again, sorry for no screenshots, you have a demo to try.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote