brent timothy saner via plug on 17 Dec 2020 22:53:38 -0800 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: [PLUG] git server |
On 12/17/20 23:24, Peter Cramer via plug wrote: > A friend and I are working on a small project together. (There likely will be more projects in the future.) Originally we planned to create a repository on GitHub, but the truth is neither of us is all that thrilled with GitHub now that it has been bought out by Microsoft. > > We are considering setting up our own git server on an Ubuntu machine that we have access to. Does anyone have any experience in this area? Is it crazy difficult? Any thoughts / advice? You have a couple options: # vanilla # https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server Git has its own server component built-in. PROS: - No large amount of dependencies - Piggybacks off a standard service (SSH) - Probably requires the least amount of configuration CONS: - VERY barebones in features (best learn how to merge like the kernel devs do[0] if you plan on accepting external commits!) - No web UI (or SSH "UI"/CLI, really, aside from your pure git operations), just a web browser[1] - No ACL/permissions/roles/etc. - No "server-side hooks" so automation options are pretty limited # gitolite # https://gitolite.com/gitolite/index.html My personal favourite. Very barebones but still has a lot of extra security features that make it superior to the vanilla git server. PROS: - Robust ACL/permissions system - Fairly easy to set up - Good server-side hook support - Minimal SSH CLI CONS: - No web UI[1] - Configuration is done through a configuration file in an "internal" git repository, as well as all users/keys/groups/etc. # gitea # https://gitea.io/en-us/ Takes a little bit of reading to get going, but once you're there it should be the most comfortable. This is probably your best option for your particular application. PROS: - Web UI (that greatly resembles GitHub's layout right before Microsoft bought them) - Fairly decent permissions system, plus "organizations" (you can use them as sort of "meta projects"), teams within those organizations, etc. CONS: - It is a pain to get running behind Nginx (but it should be for better logging and cert management) # gogs # https://gogs.io/ Don't even bother. Gitea was, if I recall correctly, a fork of gogs but it's terrible. Just take my word for it. # Gitlab # https://about.gitlab.com/install/?test=capabilities Gitlab is going to get you the most developer-friendly interface and has the best feature parity with current GitHub. PROS: - See above CONS: - It is ...NOT for the faint of heart to set up - It is an ABSOLUTE resource hog on some operations, so you'll need a beefy box if you use it. [0] https://www.kernel.org/doc/Documentation/process/submitting-patches.rst [1] Git itself has a built-in webserver component: https://git-scm.com/book/en/v2/Git-on-the-Server-GitWeb But you may find that you prefer cgit: https://git.zx2c4.com/cgit/about/ ___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug