Gitea adalah server open-source git self-host yang ditulis dalam Go. Gitea termasuk file editor repositori, pelacakan masalah proyek, users managements, notifikasi, wiki bawaan, dan banyak lagi.
Gitea adalah aplikasi yang ringan dan dapat diinstal pada sistem dengan sumber daya rendah. Jika Anda mencari alternatif untuk Gitlab dengan jejak memori yang jauh lebih kecil dan Anda tidak membutuhkan semua bells dan whistles yang ditawarkan Gitlab, maka Anda harus mencoba Gitea.
Tutorial ini menjelaskan cara menginstal dan mengkonfigurasi Gitea di Ubuntu 18.04. Instruksi yang sama berlaku untuk Ubuntu 16.04 dan distribusi berbasis Debian lainnya.
Prasyarat
Gitea mendukung SQLite, PostgreSQL, dan MySQL / MariaDB sebagai backend database.
Untuk tutorial ini, kita akan menggunakan SQLite sebagai basis data untuk Gitea. Jika SQLite tidak diinstal pada sistem Ubuntu Anda, Anda dapat menginstalnya dengan memasukkan perintah berikut sebagai user sudo:
sudo apt update sudo apt install sqlite3
Menginstal Gitea
Gitea menyediakan Docker images dan dapat diinstal dari ource, binary, dan sebagai sebuah paket.
Kami akan menginstal Gitea dari binary. Selesaikan langkah-langkah berikut untuk menginstal Gitea di Ubuntu.
Install Git
Langkah pertama adalah menginstal Git di server Anda:
sudo apt update sudo apt install git
Verifikasi instalasi dengan menampilkan versi Git:
git --version
git version 2.17.1
Buat User Git
Buat user sistem baru yang akan menjalankan aplikasi Gitea dengan mengetik:
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
Perintah akan membuat pengguna dan grup baru bernama git
, dan mengatur direktori home ke /home/git
. Outputnya akan terlihat seperti di bawah ini:
Adding system user `git' (UID 111) ... Adding new group `git' (GID 116) ... Adding new user `git' (UID 111) with group `git' ... Creating home directory `/home/git' ...
Download binary Gitea
Kunjungi halaman download Gitea dan download binary terbaru untuk arsitektur Anda. Pada saat penulisan, versi terbaru adalah 1.10.2
. Jika ada versi baru yang tersedia, ubah variabel VERSION
dalam perintah di bawah ini.
Download binary Gitea di direktori /tmp
menggunakan perintah wget
berikut:
VERSION=1.10.2 sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
binary gitea dapat dijalankan dari lokasi mana pun. Kita akan mengikuti konvensi dan memindahkan binary ke direktori /usr/local/bin
:
sudo mv /tmp/gitea /usr/local/bin
Jadikan binary dapat dijalankan dengan perintah chmod
:
sudo chmod +x /usr/local/bin/gitea
Jalankan perintah di bawah ini untuk membuat direktori dan mengatur izin dan kepemilikan yang diperlukan:
sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log} sudo chown git: /var/lib/gitea/{data,indexers,log} sudo chmod 750 /var/lib/gitea/{data,indexers,log} sudo mkdir /etc/giteasudo chown root:git /etc/gitea sudo chmod 770 /etc/gitea
Struktur direktori di atas direkomendasikan oleh dokumentasi resmi Gitea.
Izin direktori /etc/gitea
diatur ke 770
sehingga installation wizard dapat membuat file konfigurasi. Setelah instalasi selesai, kita akan menetapkan izin yang lebih ketat.
Buat Unit File Systemd
Gitea menyediakan unit file Systemd yang sudah dikonfigurasi untuk cocok dengan pengaturan sebagian besar user.
Download file ke direktori /etc/systemd/system/
dengan mengetik:
sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/
Setelah selesai, aktifkan dan mulai layanan Gitea:
sudo systemctl daemon-reloadsudo systemctl enable --now gitea
Verifikasi bahwa layanan dimulai dengan sukses:
● gitea.service - Gitea (Git with a cup of tea) Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-01-04 21:27:23 UTC; 3s ago Main PID: 14804 (gitea) Tasks: 9 (limit: 1152) CGroup: /system.slice/gitea.service └─14804 /usr/local/bin/gitea web --config /etc/gitea/app.ini ...
Konfigurasi Gitea
Sekarang Gitea sudah diunduh dan dijalankan, sekarang saatnya menyelesaikan instalasi melalui web interface.
Secara default, Gitea listens koneksi pada port 3000
pada semua interfaces jaringan.
Jika Anda memiliki UFW firewall yang berjalan di server, Anda harus membuka port Gitea:
Untuk mengizinkan lalu lintas di port 3000, masukkan perintah berikut:
sudo ufw allow 3000/tcp
Buka browser Anda, ketik http://domain_atau_IP:3000
, dan layar yang mirip dengan yang berikut akan muncul:
Database Settings :
- Database Type: SQLite3
- Path: Gunakan path absolut, misal
/var/lib/gitea/data/gitea.db
General Settings:
- Site Title: Masukkan nama situs .
- Repository Root Path: Biarkan default
/home/git/gitea-repositories
. - Git LFS Root Path: Biarkan default
/var/lib/gitea/data/lfs
. - Run As Username: git
- SSH Server Domain: Masukkan domain atau server IP.
- SSH Port: 22, Ubah jika SSH listen di port berbeda
- Gitea HTTP Listen Port: 3000
- Gitea Base URL: gunakan http dan domain atau alamat IP
- Log Path: Biarkan
/var/lib/gitea/log
Anda dapat mengubah pengaturan kapan saja dengan mengedit file konfigurasi Gitea.
Setelah selesai, tekan tombol “Install Gitea“. Setelah selesai, Anda akan diarahkan ke halaman login.
Ubah izin file konfigurasi Gitea menjadi read-only menggunakan:
sudo chmod 750 /etc/giteasudo chmod 640 /etc/gitea/app.ini
Pada poin ini, Gitea telah diinstal pada mesin Ubuntu Anda.
Konfigurasi Nginx sebagai reverse proxy SSL
Langkah ini opsional, tetapi sangat disarankan. Untuk menggunakan Nginx sebagai reverse proxy, Anda harus memiliki domain atau subdomain yang menunjuk ke IP publik server Anda. Dalam tutorial ini, kita akan menggunakan git.example.com.
Pertama, install Nginx dan hasilkan sertifikat SSL gratis Let’s Encrypt menggunakan panduan di bawah ini:
Setelah selesai, buka editor teks Anda dan edit file server block domain:
sudo nano /etc/nginx/sites-enabled/git.example.com
copy dan paste konfigurasi berikut
server { listen 80; server_name git.example.com; include snippets/letsencrypt.conf; return 301 https://git.example.com$request_uri; } server { listen 443 ssl http2; server_name git.example.com; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; client_max_body_size 50m; # Proxy headers proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; # SSL parameters ssl_certificate /etc/letsencrypt/live/git.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/git.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/git.example.com/chain.pem; include snippets/letsencrypt.conf; include snippets/ssl.conf; # log files access_log /var/log/nginx/git.example.com.access.log; error_log /var/log/nginx/git.example.com.error.log; # Handle / requests location / { proxy_redirect off; proxy_pass http://127.0.0.1:3000; } }
Jangan lupa ganti git.example.com
dengan domain Gitea Anda dan setel jalur yang benar ke file sertifikat SSL. Lalu lintas HTTP dialihkan ke HTTPS
Restart Nginx service agar perubahan diterapkan:
sudo systemctl restart nginx
Selanjutnya, ubah domain Gitea dan url root. Untuk melakukannya, buka file konfigurasi dan edit baris berikut:
sudo nano /etc/gitea/app.ini
[server] DOMAIN = git.example.com ROOT_URL = https://git.example.com/
Restart layanan Gitea dengan mengetik:
sudo systemctl restart gitea
Pada titik ini, Gitea proxy telah dikonfigurasi, dan Anda dapat mengaksesnya di: https://git.example.com
Konfigurasi Pemberitahuan Email
Agar Gitea dapat mengirim email pemberitahuan, Anda dapat menginstal Postfix atau menggunakan beberapa layanan email transaksional seperti SendGrid, MailChimp, MailGun, atau SES.
Untuk mengaktifkan pemberitahuan email, buka file konfigurasi dan edit baris berikut:
sudo nano /etc/gitea/app.ini
[mailer] ENABLED = true HOST = SMTP_SERVER:SMTP_PORT FROM = SENDER_EMAIL USER = SMTP_USER PASSWD = YOUR_SMTP_PASSWORD
Pastikan Anda memasukkan informasi SMTP server yang benar.
Restart layanan Gitea agar perubahan diterapkan:
sudo systemctl restart gitea
Untuk memverifikasi pengaturan dan mengirim email untuk testing , masuk ke Gitea, dan pergi ke: Site Administration > Configuration > SMTP Mailer
Gitea juga memungkinkan Anda untuk terhubung ke Slack dengan membuat web webhook dan mengirim pemberitahuan ke Slack channels Anda.
Cara Upgrade Gitea
Untuk meningkatkan ke versi Gitea terbaru, cukup download dan ganti binary.
- Stop Gitea service:
sudo systemctl stop gitea
- Download tversi Gitea terbaru dan pindahkan ke direktori
/home/git
:VERSION=<VERSI_GITEA_TERBARUN> wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64 sudo mv /tmp/gitea /usr/local/bin
- Jadikan file binary dapat di eksekusi:
sudo chmod +x /usr/local/bin/gitea
- Start Gitea service:
sudo systemctl restart gitea
Selesai
Kesimpulan
Tutorial ini memandu Anda untuk instalasi Gitea di Ubuntu 18.04.
Langkah selanjutnya Anda dapat mengunjungi halaman dokumentasi Gitea dan mempelajari cara mengkonfigurasi instance Gitea dan membuat proyek pertama Anda.