Kalau kamu udah nyaman self-host aplikasi kayak Nextcloud atau Vaultwarden, kenapa gak sekalian self-host tempat nyimpen kode kamu sendiri? Gitea Docker jadi pilihan populer buat ini, Git server ringan yang bisa kamu jalanin di VPS kecil sekalipun, tanpa perlu bayar langganan GitHub Pro atau khawatir repo privat kamu dibatasin.
Di artikel ini kita bahas cara install Gitea dengan Docker di VPS Ubuntu, dari setup dasar sampai bikin repository pertama kamu.
Kenapa Pakai Gitea Docker Dibanding GitHub
Gitea itu platform Git hosting yang fiturnya mirip GitHub/GitLab (issue tracker, pull request, wiki, CI/CD dasar), tapi jauh lebih ringan dan bisa kamu host sendiri sepenuhnya. Cocok banget buat proyek pribadi, tim kecil, atau kode yang emang gak mau kamu taruh di server pihak ketiga. Karena self-hosted, gak ada batasan jumlah repo privat, gak ada biaya langganan, dan semua kode kamu tetap 100% di bawah kontrol kamu sendiri.
Buat referensi lengkap, kamu bisa cek dokumentasi resmi Gitea soal instalasi Docker. Gitea aktif dikembangkan komunitas open-source dan update rutin, jadi aman dipakai jangka panjang.
Dari pengalaman megang siklus pengembangan software dari awal sampai deploy, repository Git itu salah satu aset yang paling gampang dianggap remeh soal backup, orang biasanya rajin backup database production tapi lupa kalau history commit dan source code juga sama pentingnya buat dijaga. Sebelum mulai, pastiin VPS kamu punya Docker dan Docker Compose yang udah terinstal, port 3000 (web) dan 222 (SSH Git) masih kosong, dan RAM minimal 512MB tersisa. Cek juga port yang dibutuhin belum dipakai layanan lain, karena bentrok port adalah penyebab paling umum instalasi Gitea gagal jalan.
1. Bikin File Docker Compose
Bikin folder kerja, terus bikin file docker-compose.yml:
mkdir -p ~/gitea
cd ~/gitea
nano docker-compose.yml
Isi dengan konfigurasi berikut, pakai SQLite biar simpel (gak perlu database server terpisah buat mulai):
services:
gitea:
image: docker.gitea.com/gitea:latest
container_name: gitea
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__server__DOMAIN=IP-atau-domain-kamu
- GITEA__server__SSH_PORT=222
volumes:
- gitea_data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
volumes:
gitea_data:
Ganti GITEA__server__DOMAIN sesuai IP publik atau domain server kamu. Port 222 di sisi kiri (host) itu buat akses SSH Git (biar gak bentrok sama port SSH server kamu yang biasanya 22), sedangkan port di dalam container tetap 22. Dua baris /etc/timezone dan /etc/localtime itu opsional, fungsinya biar timestamp commit dan log Gitea ngikutin timezone server kamu, bukan default UTC.
Jalankan dengan:
docker compose up -d
2. Buka Port di Firewall
Kalau kamu pakai UFW (baca juga panduan setup UFW firewall kalau belum pernah setting), buka kedua port-nya:
sudo ufw allow 3000/tcp
sudo ufw allow 222/tcp
Port 3000 wajib kebuka biar kamu bisa akses web UI Gitea dari browser, sedangkan port 222 dipakai buat clone dan push repository lewat protokol SSH. Kalau salah satu port ini masih ketutup, biasanya yang muncul adalah halaman gak bisa diakses sama sekali atau koneksi SSH timeout pas coba clone repo. Jangan lupa juga cek firewall di level cloud provider (security group), soalnya UFW cuma ngatur firewall di dalam OS, bukan firewall jaringan cloud tempat VPS kamu jalan.
3. Setup Awal Gitea Docker Lewat Wizard
Buka browser, akses:
http://IP-VPS:3000
Kamu bakal disambut wizard instalasi. Kebanyakan setting default udah cukup buat mulai (database SQLite udah otomatis kepilih), jadi kamu gak perlu setup database server terpisah buat sekadar mulai coba-coba. Tinggal scroll ke bawah dan bikin akun administrator pertama (username, email, password). Klik Install Gitea buat selesain setup-nya.
4. Bikin Repository Pertama di Gitea Docker
Setelah login, klik ikon + di pojok kanan atas, pilih New Repository. Isi nama repo, pilih mau publik atau privat, terus klik Create Repository. Prosesnya persis kayak bikin repo baru di GitHub, cuma bedanya semua ini jalan di server kamu sendiri. Kamu bakal dikasih URL clone (baik HTTPS maupun SSH lewat port 222 tadi), tinggal pakai kayak biasa:
git clone http://IP-VPS:3000/username/nama-repo.git
Kalau Instalasinya Gak Mulus
Kalau muncul permission denied pas container start (mkdir /data/git gagal), ini biasanya soal permission volume, pastikan USER_UID dan USER_GID di environment sesuai sama owner folder data kalau kamu pakai bind mount, atau biarin default kalau pakai named volume kayak contoh di atas. Kalau gak bisa clone lewat SSH, cek lagi apakah port 222 udah beneran kebuka di firewall dan security group cloud provider, dan pastiin kamu pakai port 222 (bukan 22 default) di URL clone SSH.
Kalau web UI gak bisa diakses meski container jalan, cek firewall UFW, pastiin port 3000 kebuka dari kedua sisi. Kalau container gagal start karena port udah dipakai proses lain, cek dulu pakai sudo lsof -i :3000 atau sudo ss -tulpn | grep 3000 buat lihat proses apa yang udah nempatin port itu, terus matiin proses tersebut atau ganti port mapping di docker-compose.yml.
Soal mau ganti dari SQLite ke database beneran (MySQL/PostgreSQL), itu bisa, tapi harus dilakuin dari awal sebelum ada data penting, atau lewat proses migrasi manual yang agak ribet. Kalau tim kamu bakal gede, pertimbangkan pakai MySQL dari awal instalasi.
Penutup
Nah, segitu aja cara install Gitea dengan Docker di VPS Ubuntu. Setup ini cocok banget buat kamu yang mau kontrol penuh atas kode sendiri, entah itu proyek pribadi atau kerjaan tim kecil. Kalau ada yang error atau nyangkut, drop komentar aja bro.
Satu hal yang jangan sampai kelewat, rutin backup folder /data atau volume gitea_data kamu, soalnya di situ semua repository, database, dan konfigurasi Gitea kamu tersimpan. Kalau volume-nya hilang tanpa backup, semua kode dan history commit yang udah kamu taruh juga ikut lenyap begitu aja.
























