Hit is one of the best things to come from Linus Torvalds, if you exclude Linux. This version control system is excellent for developing software and collaborating on other code and solutions. Whether you happen to be building a website or creating a new Linux distro, Git is great for version control, history, branching, and completing the project with minimal fuss. GitHub is one of the more popular platforms for hosting Git repositories and projects. It's fantastic, but it happens to be owned by Microsoft and has a limited free tier.

That's why I decided to not only use GitHub, but set up my own Git repository hub using Gitea.

GitHub is great for collaboration

Getting more done with others

Git completely changed how software is developed by making it easier to collaborate with others, track changes, have a full revision history, and offer easy ways to fork branches. GitHub launched in 2008, three years after Linus created Git in 2005 as a web-based hosting platform for Git projects and repositories. It quickly became the place to be for developers and software engineers to collaborate and share code revisions. Everything was fine until Microsoft decided to purchase GitHub in 2018 for $7.5 billion.

Thankfully, Microsoft's acquisition wasn't as bad as many first believed it to be. The company opted to keep GitHub open and free, further facilitating the development of open source software. We then had some excellent contributions from Microsoft through .NET, TypeScript, and VS Code, the latter I love to use on all platforms. We've got some notable improvements that only a tech conglomerate like Microsoft could bring to the table, such as GitHub Copilot.

Then there's Microsoft's wide-ranging cloud infrastructure, which allowed GitHub to grow to what it has become without growing pains and major downtime. Anyone can create an account, log in, and help projects with commits, bug reports, and more. Repositories can be created in seconds, and you can publish your work with very little effort.

Gitea brings GitHub to your home

Self-hosting the ultimate dev platform

I've gone over what makes GitHub (and the wider Git system) so good for development, but why would I want to leave the platform and self-host my own solution? First and foremost, I get to retain full control and ownership. All of the data stored on Gitea is mine. It's not hosted on some platform owned by a tech conglomerate. All the repositories, user data, metadata, and everything else are owned and controlled by me. It's one of the reasons I enjoy self-hosting as much as I can.

All the repositories, user data, metadata, and everything else are owned and controlled by me.

Because I'm running Gitea and it's an open source alternative, there are no advertisements or a premium subscription for advanced features. What you see is what you get, and that just so happens to be the full Git package. I can customize Gitea to my liking, including custom workflows, save money at scale when inviting others to collaborate with me on projects, and it doesn't take much to host your own repositories. Anything from a single-board computer (SBC) and Raspberry Pi to old enterprise server hardware will run Gitea.

If you have some private projects you wish to keep internal, running Gitea can be a great alternative to a public-facing platform such as GitHub. As a front-facing, publicly available platform, GitHub is excellent for when you wish to share your experience with others, but hosting your own Git platform can prove useful for private projects, work in progress, or ideas that require fleshing out. Want the best of both worlds? Easily use both GitHub and Gitea.

Installing Gitea was the easiest part

You'll be up and running in no time

Whether you're running Proxmox or a Docker instance on a PC, you can install Gitea in a few clicks (or typed commands). Being fortunate enough to have a few Proxmox servers at the ready, I was able to use one of the excellent Proxmox VE Helper-Scripts to install and run Gitea on Proxmox. The entire installation process took less than a minute, which is a testament to how good these scripts are and how powerful Proxmox is as a hypervisor.

  1. Log in to Proxmox.
  2. Run the following command in the shell to install Gitea:
    bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/gitea.sh)"
  3. Hit Enter.
  4. Choose the storage pool, select with Spacebar.
  5. Hit Enter.
  6. Load the provided IP address in your favorite browser. (Don't forget the 3000 port.)
  7. Choose SQLite as the database.
  8. Click Administrator Account Settings.
  9. Enter some credentials for your primary account.
  10. Click Install Gitea.

I recommend using SQLite for the DB as it's supported by the LXC. If you'd like to use MySQL, you'll need to install it separately, which can be a different LXC to keep it separate. After clicking Install Gitea, you'll be greeted by the homepage, and everything will look relatively bare. If you're using Homepage to monitor and control your home lab, I'm pleased to report that Gitea can be incorporated into your dashboard through a widget.