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:

gitea-install

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.

  1. Stop Gitea service:
    sudo systemctl stop gitea
  2. 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
  3. Jadikan file binary dapat di eksekusi:
    sudo chmod +x /usr/local/bin/gitea
  4. 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.