What Is This Project
Gitea is a lightweight self-hosted Git service. I put it in my Homelab as my own "private GitHub." It runs in Docker and uses NPM (Nginx Proxy Manager) for reverse proxying and certificate management, providing common capabilities such as repository browsing, code history, and Issues.
Why I Built It
First, to bring code back from public platforms. Private repositories, experimental projects, and casually written scripts feel safer on my own machine, and they are not affected by changes in platform policies. Second, to learn: I wanted to go through the complete process of deploying a Git service, pushing images, certificate extension, and so on, rather than only knowing git clone.
What Problems It Solves
- Private repositories have a unified home and are no longer scattered across platforms or local directories;
- A web interface lets me browse code and view commit history and diffs, which is more intuitive than digging through logs in the terminal;
- Automatic daily backups are pushed elsewhere, avoiding total code loss from a single-machine failure;
- The reverse proxy provides a unified entry point, and certificate renewal is handled by NPM, eliminating manual maintenance.
Current Status
The project is "running" and is used daily as my code hosting and backup node. The overall setup is not complicated: one machine, one container, and a scheduled backup script are enough to get it running, and there is room for future expansion (such as adding CI or more repositories).
If you also want to self-host a code repository, this combination is a low-cost, low-maintenance starting point.