cmkarlsson

cmkarlsson

Best self-hosted version control + CI/CD solution for small team?

The title says it all. I am looking for a small self-hosted code hosting and CI/CD solution and just wonder what your experience with the different solutions are.

The company will not allow any cloud interaction so must be self-hosted on a shared server but I am open for any suggestions.

The features I am after are:

  • Git hosting

  • Code review

  • CI tasks before committing to trunk

  • Maybe issues and wiki but not essential

  • BONUS: Something where I can do everything from the command-line, especially pull requests and reviews and what not. I know this doesn’t seem to be directly supported in the Github/gitlab/gitea sort of solution but perhaps there are others out there which are better?

  • Gitlab - I don’t like it because it uses way too many resources, too many 3rd party components and it is painfully slow

  • Gogs/Gitea - Lightweight and easy to setup but are they any good?

  • phabricator - Is it still a thing?

  • Others?

And what self-hosted CI/CD are there?

  • jenkins - we are currently using this for some things. I am not a huge fan
  • drone.io - Managed to get it going with gitea. Is lightweight but is it any good?
  • TeamCity
  • AppVeyor
  • Others?

Most Liked

AstonJ

AstonJ

Self-hosting git repos is pretty easy, there are good instructions in the Git book: https://git-scm.com/book/en/v2/Git-on-the-Server-Getting-Git-on-a-Server (excellent book btw, definitely worth a read). There is also a basic web visualiser that comes with Git itself, GitWeb: https://git-scm.com/book/en/v2/Git-on-the-Server-GitWeb

I’ve only ever used it for deployment purposes though (so push / pull etc) hence didn’t bother with a web visualiser. I’m not sure whether it would be suitable for your exact requirements but it would definitely be worth reading through some of those chapters.

I think @NobbZ has worked with a self-hosted set-up with GitLab - hopefully he’ll see this and maybe add some thoughts…

cmkarlsson

cmkarlsson

Thanks @AstonJ.

We are currently running bare git repos, some ad-hoc git hooks and an old jenkins server. I am not happy with this and want to explore alternatives and a more integrated solution.

The hard thing is coming up with a solution that works for the entire team. There are some that are beginner git users and not familiar with github workflows.

We have a pretty “subversion” workflow going on at the moment. Everyone has commit rights to trunk and quite often commits break the build or tests (but in my opinion then it is too late). Here I want to add some sort of code review and a CI build step that runs the builds and tests before accepting the merge to trunk.

I know this can be setup with just git and other 3rd party software but I think a more prescriptive solution might be in order. Something that gives a little bit more to lean on.

Would be interesting to hear about GitLab but as an old sys-op I have lots of prejudice against it, so it is an uphill battle :smiley:

OvermindDL1

OvermindDL1

I use Concourse as it’s pretty simple and bare, it just runs docker instances fresh each time, you build up how everything should go, etc… It’s had occasional bugs but I think they are mostly fixed now, but I find it pleasant to use.

Where Next?

Popular General Dev topics Top

AstonJ
In your opinion which programming languages are simple to use and easy to get started wither those who don’t have a computer science bac...
New
AstonJ
Which apps do you think are killing it right now? Either from a technical perspective or ones that you like personally or feel have been...
New
siddhant3030
I’m thinking of buying a monitor that I can rotate to use as a vertical monitor? Also, I want to know if someone is using it for program...
New
AstonJ
What do you think needs fixing in the digital / computer science sphere?
New
New
jss
What do people think about Data-Oriented Programming, like this book tackles? https://www.manning.com/books/data-oriented-programming Ho...
New
OvermindDL1
What shell(s) do you use, why do you use them, and how do you have them configured? Note, this is about shell’s, not terminals, terminal...
New
AstonJ
Just listened to @rvirding’s interview here and he mentions #lua (and Luerl) - just wondered if anyone’s used Lua and what you think of it?
New
ohm
I just switched jobs to tech lead with a small team of about 6 other developer. This is my first tech lead job. What do I need to know? A...
New
Exadra37
My brother got a VPS on https://contabo.com hosting provider, but I was not aware of them, and when my brother told me the price and spec...
New

Other popular topics Top

Devtalk
Reading something? Working on something? Planning something? Changing jobs even!? If you’re up for sharing, please let us know what you’...
1063 23050 405
New
PragmaticBookshelf
Stop developing web apps with yesterday’s tools. Today, developers are increasingly adopting Clojure as a web-development platform. See f...
New
PragmaticBookshelf
Build highly interactive applications without ever leaving Elixir, the way the experts do. Let LiveView take care of performance, scalabi...
New
Maartz
Hi folks, I don’t know if I saw this here but, here’s a new programming language, called Roc Reminds me a bit of Elm and thus Haskell. ...
New
foxtrottwist
A few weeks ago I started using Warp a terminal written in rust. Though in it’s current state of development there are a few caveats (tab...
New
AstonJ
Was just curious to see if any were around, found this one: I got 51/100: Not sure if it was meant to buy I am sure at times the b...
New
PragmaticBookshelf
Author Spotlight Mike Riley @mriley This month, we turn the spotlight on Mike Riley, author of Portable Python Projects. Mike’s book ...
New
PragmaticBookshelf
Build modern server-driven web applications using htmx. Whatever programming language you use, you’ll write less (and cleaner) code. ...
New
sir.laksmana_wenk
I’m able to do the “artistic” part of game-development; character designing/modeling, music, environment modeling, etc. However, I don’t...
New
AstonJ
This is a very quick guide, you just need to: Download LM Studio: https://lmstudio.ai/ Click on search Type DeepSeek, then select the o...
New