๐งโ๐ป Self-host Git Server di Homelab: Kenapa Saya Gunakan Gitea
๐ Pendahuluan
Saya adalah seorang developer rumahan, dan seperti banyak orang lainnya, saya memulai semuanya dengan GitHub.
Tapi seiring waktu, saya merasa perlu sesuatu yang lebih pribadi dan lebih saya kontrol sepenuhnya.
Akhirnya, saya memutuskan untuk menjalankan Git server saya sendiri โ dan pilihan saya jatuh kepada Gitea.
๐ง Kenapa Self-Host Git?
Awalnya mungkin terdengar berlebihan. Kenapa harus repot-repot self-host Git server kalau GitHub, GitLab, dan Bitbucket sudah sangat matang dan gratis?
Jawabannya sederhana:
Saya ingin kendali penuh atas source code saya, tanpa tergantung pada layanan eksternal.
Alasan saya lainnya:
- ๐ถ Kadang koneksi buruk, jadi ingin bisa commit dan clone lokal
- ๐ Ingin project tertentu benar-benar privat
- ๐ Ingin belajar manajemen Git server
- ๐งฉ Ingin integrasikan dengan sistem homelab seperti CI/CD lokal, monitoring, dan DNS
๐ง Kenapa Saya Pilih Gitea?
Gitea adalah Git server ringan yang ditulis dalam Go.
Mirip GitHub, tapi bisa dijalankan sendiri hanya dengan satu binary.
๐ก Kelebihan Gitea:
- โก Ringan sekali โ bisa jalan di Raspberry Pi, Orange Pi, bahkan STB Armbian saya
- ๐งโ๐ป Antarmuka seperti GitHub โ nyaman untuk coding harian
- ๐ Privasi penuh โ semua kode disimpan di server saya sendiri
- ๐ฆ Bisa pakai Docker โ deploy dan update cepat
- ๐ Integrasi Webhook, CI, hingga Prometheus Exporter
- ๐ ๏ธ Issue tracker, pull request, wiki, dan semua fitur penting GitHub
๐ ๏ธ Cara Saya Deploy Gitea
Saya deploy Gitea menggunakan Docker Compose, di board ARM64 (Orange Pi) yang selalu aktif 24/7 dan hemat listrik.
Contoh docker-compose.yml:
version: '3'
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__server__DOMAIN=gitea.lan
volumes:
- ./gitea:/data
ports:
- "3000:3000"
- "222:22" # SSH for git clone
restart: unless-stopped
Lalu saya reverse proxy-kan gitea.lan
menggunakan NGINX Proxy Manager, dan tambahkan SSL dengan cert self-signed.
๐ Integrasi dengan Homelab
Setelah Gitea berjalan lancar, saya mulai integrasikan ke infrastruktur lain:
Sistem Homelab | Integrasi |
---|---|
๐งญ Pi-hole DNS | Agar gitea.lan bisa diakses di semua perangkat |
๐ง Ansible | Konfigurasi otomatis + sync repos Ansible |
โ๏ธ CI/CD (Drone atau GitHub Actions runner lokal) | Build otomatis saat push |
๐ Prometheus Exporter | Pantau status dan commit activity |
โจ Kelebihan Self-Host Gitea
Kelebihan | Penjelasan |
---|---|
๐ Privasi total | Tidak ada pihak ketiga yang bisa lihat kode kamu |
๐ Bisa diakses offline (LAN) | Bahkan saat internet down |
โก Sangat ringan & cepat | Load halaman Git dan repo lebih responsif |
๐ ๏ธ Kontrol penuh | Bisa custom fitur, integrasi, dan backup sendiri |
๐ Pembelajaran nyata | Saya belajar banyak soal reverse proxy, DNS, git SSH, hingga backup database |
๐ Kekurangan & Tantangan
Kekurangan | Catatan |
---|---|
โ Tidak ada social features | Tidak ada bintang, followers, atau issues dari komunitas luar |
โ Perlu urus backup sendiri | Tapi ini juga latihan penting |
โ Tidak ada marketplace action seperti GitHub | Tapi CI lokal bisa menggantikan |
โ Harus jaga uptime | Tapi berjalan stabil di ARM64 server saya yang 24/7 |
๐ง Pengalaman Pribadi Saya
Selama setahun terakhir saya:
- Menyimpan semua proyek pribadi dan eksperimen di Gitea
- Membuat repo Ansible, Docker Compose, dan skrip automasi saya
- Mengundang teman untuk ikut push lewat SSH
- Menghubungkan webhook ke Uptime Kuma untuk deteksi downtime
- Membuat wiki pribadi berisi catatan dan referensi setup homelab
Saya merasa lebih percaya diri karena semua kode penting saya:
โ Tersimpan di server milik saya
โ Tidak tergantung internet
โ Bisa saya kelola sepenuhnya
๐งพ Kesimpulan
Self-host Gitea memberi saya:
- Kendali
- Privasi
- Efisiensi
- Ilmu baru
โฆdan semua itu dijalankan di ARM64 server hemat daya yang hanya memakai beberapa watt saja.
Di dunia yang makin tergantung cloud, saya justru belajar bahwa kadang, mengendalikan sendiri adalah bentuk kebebasan terbaik.
๐ฏ Apakah Ini Cocok untuk Kamu?
โ Ya, jika kamu:
- Ingin belajar infrastruktur Git
- Punya server/homelab yang hidup 24/7
- Ingin privasi maksimal atas kodinganmu
- Ingin eksplorasi DevOps dan automasi lokal
โ Mungkin belum cocok jika:
- Kamu sering bekerja kolaboratif dengan banyak developer luar
- Tidak punya waktu mengurus backup dan patching manual