Creating an Internal GitHub with Gitea (Open Source)
For my personal projects, I’d been using GitHub as usual. For work-related code, I managed things either with GitHub private repositories or with Git on my own PC, and it was fine—no major inconvenience.
But then I ran into a situation where I needed to develop something together with other people in the company, and I had to think about what we should use.
Using GitHub Enterprise felt way too expensive—especially since we’d have fewer than five people using it. I didn’t want to spend that kind of money just to host code.
I also considered Bitbucket, since our company platform already relies heavily on Atlassian products. But I expected there would be limitations around policies and pricing, so I decided to try hosting our own server on the internal network instead.
That’s when I found Gitea, a well-made open-source project. It’s also nicely prepared for quick deployment with Docker, so standing it up is straightforward.

During installation I ran into issues (it turned out a specific port was blocked), which led to a lot of trial and error. But once I finished the initial setup, it felt surprisingly satisfying. I didn’t need anything fancy, so it was a good fit.
What I needed
- Git remote management (obviously)
- User registration / accounts
- Issue and pull request management
- A GitHub-like UI via the web interface
- Markdown rendering for README files

The main languages we use are C/C++/C#/Python, so for now I don’t really need Actions or automated builds. As long as the source code is managed properly and the team can collaborate smoothly, that’s enough.
If we start using it more seriously, I’ll probably need to make it more reliable—run it on a dedicated server machine and set up regular backups. That sounds a bit annoying, though. For now, I’ll try it with a few teammates, and if it proves useful, I’ll improve it step by step.
