Hello, everyone,
Microsoft GitHub is known to be a hotbed of controversy. Many large and well-known open source projects promoting data protection and privacy use this platform, where behavioral data of developers is collected in a central place and reused by Microsoft. This makes it possible to draw conclusions about working hours, working methods, the tools and technology used, ongoing projects, side or hobby projects and even customers, work colleagues, vacation times or travel based upon IP addresses.
It’s no coincidence that GitHub has established itself as the top dog alongside GitLab and many other smaller SCMs. The web interface is basically gold standard, and the many tools for bug tracking, wiki, and time tracking are indispensable. But there is another way which I would like to show and inspire you in this tutorial. Use your own gitea instance for your own projects!
It comes with all of the tools listed above (a feature overview and comparison matrix can be found here). Especially worth mentioning is the git-mirroring function of frequently used repos. This allows me to work with other instances in a privacy-savy way without leaving my behavior data everywhere.
Interestingly, gitea is still hosted on GitHub, but they are about to take the final step in this matter. Recently, developers from China have been blocked from accessing GitHub. This is one of the reasons why it’s better to not depend on any company or central platform and to run everything under your control. No matter if you want to run everything in-house or on a rented server in any data center of your choice.
Second interesting thing: Gitea already “knows” Xojo and has matching .gitignore exemptions when you create a new repo based on default template.
As always, I make no claim to general validity or correctness and will put the finishing touches on the project in the course of the coming days and weeks. If you find anything worthy of improvement, please feel free to comment or add here. Have fun reading!
Initial situation:
I can rely on an existing infrastructure and internet connection, which will not be discussed in detail here. Once from the outside to the inside an quick overview:
- 250 MBit Internet Business Connection with fixed IPv4
- Fritzbox ISP modem/router in bridge mode
- Own ipfire firewall with IPS/IDS/ GeoIP Blocking/ VPN
- Port forwarding to dedicated Apache reverse proxy
- gitea in Jail on FreeNAS 11.3 under BSDUnix
The next steps will describe how I installed and configured gitea on an FreeNAS within a Jail
(Due to forum restrictions (only 10000 words allowed) I need to split this text in multiple parts)