πŸ§‘β€πŸ’» Self-host Git Server di Homelab: Kenapa Saya Gunakan Gitea

πŸ§‘β€πŸ’» 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 HomelabIntegrasi
🧭 Pi-hole DNSAgar gitea.lan bisa diakses di semua perangkat
πŸ”§ AnsibleKonfigurasi otomatis + sync repos Ansible
βš™οΈ CI/CD (Drone atau GitHub Actions runner lokal)Build otomatis saat push
πŸ“ˆ Prometheus ExporterPantau status dan commit activity

✨ Kelebihan Self-Host Gitea

KelebihanPenjelasan
πŸ” Privasi totalTidak ada pihak ketiga yang bisa lihat kode kamu
πŸŒ™ Bisa diakses offline (LAN)Bahkan saat internet down
⚑ Sangat ringan & cepatLoad halaman Git dan repo lebih responsif
πŸ› οΈ Kontrol penuhBisa custom fitur, integrasi, dan backup sendiri
πŸ“š Pembelajaran nyataSaya belajar banyak soal reverse proxy, DNS, git SSH, hingga backup database

πŸ˜… Kekurangan & Tantangan

KekuranganCatatan
❌ Tidak ada social featuresTidak ada bintang, followers, atau issues dari komunitas luar
❌ Perlu urus backup sendiriTapi ini juga latihan penting
❌ Tidak ada marketplace action seperti GitHubTapi CI lokal bisa menggantikan
❌ Harus jaga uptimeTapi 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