HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
sitaramc
gitolite
Perl2010–2023
sitaramc / gitolite

gitolite

Hosting git repositories -- Gitolite allows you to setup git hosting on a central server, with very fine-grained access control and many (many!) more powerful features.

17Distinct people
20Mentions
0Explicit recommenders
8.6KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Hosting git repositories -- Gitolite allows you to setup git hosting on a central server, with very fine-grained access control and many (many!) more powerful features.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year20 dated mentions

Observed mentions: 2010-02-08 02:15:26 UTC to 2023-05-11 15:08:01 UTC.

02462010-01-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20102011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20162017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20102010-01-01 00:00:00 UTC2011-01-01 00:00:00 UTC202
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC707
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC615
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC000
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC000
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC101
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC000
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC000
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Gitolite README about this README (Github-users: click the "wiki" link before sending me anything via github.) This is a minimal README for gitolite, so you can quickly get started with: installing gitolite on a fresh userid on a Unix(-like) machine, using ssh learning enough to do some basic access control For anything more, you need to look at the complete documentation, at: http://gitolite.com/gitolite. Please go there for what/why/how, concepts, background, troubleshooting, more details on what is covered here, advanced features not covered here, migration from older gitolite, running gitolite over http (rather than ssh), and many more topics. Assumptions You are familiar with: OS: at least one Unix-like OS ssh: ssh, ssh keys, ssh authorized keys file git: basic use of git, bare and non-bare remotes You are setting up a fresh, ssh-based, installation of gitolite on a Unix machine of some sort. You have root access, or someone has created a userid called "git" for you to use and given you a password for it. This is a brand new userid (or you have deleted everything but .bashrc and similar files to make it look like one!) If your server is not connected to the internet, you know how to clone the gitolite source code by using some in-between server or "git bundle". Installation and setup server requirements any unix system sh git 1.6.6 or later perl 5.8.8 or later openssh 5.0 or later a dedicated userid to host the repos (in this document, we assume it is "git", but it can be anything; substitute accordingly) this user id does NOT currently have any ssh pubkey-based access ideally, this user id has shell access ONLY by "su - git" from some other userid on the same server (this ensure minimal confusion for ssh newbies!) steps to install First, prepare the ssh key: login to "git" on the server make sure ~/.ssh/authorized_keys is empty or non-existent make sure your ssh public key from your workstation has been copied as $HOME/YourName.pub Next, install gitolite by running these commands: git clone https://codeberg.org/sitaramc/gitolite # (or) git clone https://github.com/sitaramc/gitolite mkdir -p $HOME/bin gitolite/install -to $HOME/bin Finally, setup gitolite with yourself as the administrator: gitolite setup -pk YourName.pub If the last command doesn't run perhaps "bin" is not in your "PATH". You can either add it, or just run: $HOME/bin/gitolite setup -pk YourName.pub If you get any other errors please refer to the online documentation whose URL was given at the top of this file. adding users and repos Do NOT add new repos or users manually on the server. Gitolite users, repos, and access rules are maintained by making changes to a special repo called "gitolite-admin" and pushing those changes to the server. To administer your gitolite installation, start by doing this on your workstation (if you have not already done so): git clone git@host:gitolite-admin NOTE: if you are asked for a password, something went wrong.. Go hit the link for the complete documentation earlier in this file. Now if you "cd gitolite-admin", you will see two subdirectories in it: "conf" and "keydir". To add new users alice, bob, and carol, obtain their public keys and add them to "keydir" as alice.pub, bob.pub, and carol.pub respectively. To add a new repo "foo" and give different levels of access to these users, edit the file "conf/gitolite.conf" and add lines like this: repo foo RW+ = alice RW = bob R = carol Once you have made these changes, do something like this: git add conf git add keydir git commit -m "added foo, gave access to alice, bob, carol" git push When the push completes, gitolite will add the new users to ~/.ssh/authorized_keys on the server, as well as create a new, empty, repo called "foo". help for your users Once a user has sent you their public key and you have added them as specified above and given them access, you have to tell them what URL to access their repos at. This is usually "git clone git@host:reponame"; see man git-clone for other forms. NOTE: again, if they are asked for a password, something is wrong. If they need to know what repos they have access to, they just have to run "ssh git@host info". access rule examples Gitolite's access rules are very powerful. The simplest use was already shown above. Here is a slightly more detailed example: repo foo RW+ = alice - master = bob - refs/tags/v[0-9] = bob RW = bob RW refs/tags/v[0-9] = carol R = dave Here's what these example rules say: alice can do anything to any branch or tag -- create, push, delete, rewind/overwrite etc. bob can create or fast-forward push any branch whose name does not start with "master" and create any tag whose name does not start with "v"+digit. carol can create tags whose names start with "v"+digit. dave can clone/fetch. Please see the main documentation linked above for all the gory details, as well as more features and examples. groups Gitolite allows you to group users or repos for convenience. Here's an example that creates two groups of users: @staff = alice bob carol @interns = ashok repo secret RW = @staff repo foss RW+ = @staff RW = @interns Group lists accumulate. The following two lines have the same effect as the earlier definition of @staff above: @staff = alice bob @staff = carol You can also use group names in other group names: @all-devs = @staff @interns Finally, @all is a special group name that is often convenient to use if you really mean "all repos" or "all users". commands Users can run certain commands remotely, using ssh. Running ssh git@host help prints a list of available commands. The most commonly used command is "info". All commands respond to a single argument of "-h" with suitable info
Read the full README on GitHub

What Hacker News says

20 sources
Very true and the search engines are to be blamed as well. Recently, I was searching for a Git - fork project (i.e. a project forked from git itself) which allowed separate machine based accounts for Git branches. It was quite famous, I had used it about 4 years back and I don't remember its name now. Now, this is the worst case scenario for the search engines - • 'git fork project' would bring numerous github forked projects. • 'git original source' would bring the mirror of git in github, but then again there are hundreds of fork. After, lot of time spent on this in vain, I gave up. UPDATE: While writing this comment I remembered the USP of that project was 'Branch specific permissions', so I gave a fresh attempt at finding it and I did via SO! It's Gitolite[1]. [1]https://github.com/sitaramc/gitolite
In OpenJDK Migrates to GitHub
If you want free Git hosting, you can DIY with Gitlab [1] if you want a web-based GUI like Github's. If you prefer command-line usage, I'd recommend Gitolite [2]. It allows you to give people access to git and only git (as opposed to git's built-in system, which requires granting ssh shell access); and it only uses one OS-level user/group regardless of how many people it's managing. Either of the above solutions are for your compsci professors who are clued-in enough to be comfortable with CLI in general and Git in particular. If you're trying to give files to technically clueless humanities professors, I'd suggest only using Git privately, to develop your paper or whatever, then using a plain old email attachment, or hosting on an HTTP server, to submit the assignment. Or going really old-school by printing out an old-fashioned dead-tr
Read the rest
ee hardcopy. Of course, all of these solutions (except email attachments and printouts) require running your own server, which is actually a great learning experience. I'd recommend prgmr.com for hosting; their smallest plans should be able to fit even an undergrad's budget, and you have full root access to your (Xen VM) system, so you can do all kinds of fun and exotic experiments. It's not necessary for basic usage, but you can install any version of any Linux distro, use LVM, even use a custom-compiled kernel or FreeBSD (the only requirement is guest Xen patches). It's great because if you have problems, they give you access to an ssh-based out-of-band console, rebooter, and rescue image so you can fix them yourself. (By contrast, many other hosts require you to make changes through some half-baked web UI that lacks half the tools you need, require you to install only approved distros and only do OS upgrades on an approved schedule, and require you to file tickets with lengthy turnaround times and/or fees in order to do the most routine troubleshooting or maintenance tasks.) Disclaimer: My only relationship with prgmr.com is that I've been their hosting customer for a long time (and very happy with them given the nonsense I've had to put up with from other hosts, in case you couldn't figure that part out from my above rant). My only relationship with Gitolite is a project user. (I've created and maintained three small-scale Gitolite installations.) I haven't used Gitlab, but I've heard good things about it. [1] http://news.ycombinator.com/item?id=4957145 [2] https://github.com/sitaramc/gitolite
In Github experiencing major service outages across all services.
If you want private repo hosting on the cheap, I would suggest using Gitolite [1] on a VPS [2]. The current version includes self-service key management, regular users are able to create repos in their own namespace, and easy forking of repositories. It's extensible, you can write your own commands in any language. Granted, it has minuses. It only has a command line interface (no GUI), requires a little setup and editing of configuration files and reading of docs. [1] https://github.com/sitaramc/gitolite [2] http://prgmr.com/
In Why the World Needs Another Git Repository Hosting Service
> Any idea's about a better point? Gitlab.io provides commercial hosting for Gitlab, the free open source git management platform. If the emphasis is on being free then strikethrough "commercial". Could be replaced with "official" but could sound over-promoting. I think it's important not to hide the fact that hosting is based on open source gitlab project. In this case it's a good thing as gitlab.io owners are also the main developers of Gitlab. What puzzles me a bit is that Gitlab tagline [1] says it's based on Gitolite. Gitolite license is GPL2 [2] while Gitlab is MIT [1]. How is Gitlab project maintaining license compatibility? The question does not necessarily affect Gitlab.io service. EDIT: gitorius->gitolite, AGPL->GPL2. Messed up project name in initial comment.. [1] http://gitlabhq.com/ [2] https://github.com/sitaramc/gitolite/bl
Read the rest
In Show HN - Github competitor with free private repo
If you end up trying to setup git on a linux machine, two things: - setup or have available another linux machine to act as a "client". git on windows with ssh can be a bit fidgety sometimes, and that would help you debug whether it's a client or server issue. - do look at gitolite for managing the repos [1]. Its "simple" to install, and the features it brings to the table are awesome (from private 'scratch' repos to auth and key management, and several others). [1] - https://github.com/sitaramc/gitolite#_quick_install
In Subversion 1.7 is out
The killer feature of codeplane is cheap shared private git repositories. If you are the only person using your git repo, there is no reason you wouldn't store your remote on some random webhost (you can do this at http://nearlyfreespeech.net for essentially free). If you want to collaborate with this setup, you would need to create a system-level account for every collaborator on your VPS (ugly) or install something like gitolite (https://github.com/sitaramc/gitolite). The downside to gitolite is then you are running your own VPS, i.e. are responsible for security, updates, config, etc. It seems codeplane takes care of all the nonsense for you so you can get on with your real project. As someone who had to set up gitolite because of this exact need, I can attest to the need for a service like codeplane.
In Why I've built an alternative to Github

Showing the 15 most recent of 20 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.