๐Ÿง‘โ€๐Ÿ’ป 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