DevOps
Reasons to Self-Host Git
Could self-hosting your code be right for you?
Wed 16 November 2022
An Important Choice
One important choice we must all make is between relying on external entities or doing things on our own. For many, this might seem like an easy choice, but we encourage you to think about it for a few minutes.
How your data is used and managed is extremely important. This general concept should be very clear to everyone, but perhaps sometimes it isn’t. The unfortunate reality is that the power of data in the hands of the wrong people is a big problem, especially if that data is about you.
If your business is focused on developing software, your code deserves special care and attention. It is the thing on which your whole company and business are founded.
Self-hosting your code gives you agency — full control over how that code is shared and used. In this article, we will explore this topic in order to help you decide if self-hosted Git is right for you.
The Problem With Relying on Others
The main problem with relying on external code hosting providers is that at any moment they can decide to change how their service is provided to you. For example, what happens if they decide to shut down the service? Maybe their service offering does not make enough money and thus isn’t economically sustainable. If they shut it down, that isn’t something you can stop. What would you do in this case?
Another factor is cost. Sure, the cost is reasonable for a solo founder, but once you start adding new people, the cost for adding new team members can become prohibitive really fast given the traditional “$XX per user per month” pricing model.
Sure, they often offer free basic plans. But one problem with these plans is that they have severe limitations compared to their paid plans, and the things you can’t do are often key to achieving an efficient development flow. The most common case is continuous integration (CI) pipelines. You only get a certain number of minutes, and then you must start paying for all the extra CI time you used. And it’s not just a small sum, either.
These limitations are not good for the productivity of your development team. Being told that there is not enough budget can be frustrating for a team that has to develop software to the best of their ability.
In addition to possibly shutting down, providers can also raise prices to such an extent that it is no longer sustainable for you. For crucial aspects of your business, always consider how your business will be impacted by these changes.
The Cons
Like any choice, there is always a trade-off to consider.
The first thing is that self-hosting is more work for you. You have to manage the server on which you are going to install and configure the software that will manage your code repositories. If you want backups (trust us — you want backups!), that will be another thing to think about and plan. Not to mention the updates to the server operating system and the repository management software itself.
In addition to the management costs, there is also the cost of renting the server. But the monthly cost of a rented server is usually lower than any SaaS product, and considering that you can put multiple applications on a server, the cost advantage is considerable.
The quality of today’s open-source projects has increased so much that many problems you once might have had… no longer exist. They have more features and enhanced reliability, and the user experience is often better than the products provided by expensive SaaS providers.
The Options
At the moment our preferred code repository management tool is Gitea. It is lightweight in terms of server resources, and new features are being added on a regular basis. The development team recently added support for private registries, to which you can publish Docker images, NPM packages, PyPI packages, and other package manager types.
This kind of agile software development is a significant advantage over software that is already very complex and designed to be used by millions of people. Those products don’t have a rapid development cadence, and those teams make less bold decisions in order not to upset anyone.
Another code repository management tools used by several organizations is GitLab. Not many people know that it is possible to install it on their own server. We are less enthusiastic about GitLab due to its dual-license model, which makes it hard to understand which features can and cannot be used on self-hosted GitLab instances. Plus, GitLab’s software has become quite complex, which means its user interface can be confusing, and the server resource requirements are rather steep.
Conclusions
We hope this will help you make a decision and understand the importance of choosing the right tool.
As always, we recommend that you read the terms of use and licenses. They can hold unwanted surprises.
What We Can Do for You
Regarding the “cons” above, we are trying to remove barriers for open source product adoption, and we believe open source is the right way to solve many problems.
You shouldn’t have to decide between having great tools and retaining control over your data privacy and portability.
We want to give you another choice, one in which your have great tools and control over your own data. And not just for Git repository hosting, but also for all the other tools Fortressa can offer you.