Gitea fork dari gogs merupakan alternative lain dari Github ataupun Gitlab, selain menggunakan memory yang kecil, gitea juga stabil dan cepat. Saya sendiri menggunakan gitea (sebelumnya gogs) untuk hosting 30-an repository dengan 3 orang tim masih memadai dengan VPS 512 (DigitalOcean/Vultr) lebih dari cukup menghandle kebutuhan git tim, walaupun sekarang saya sudah pindah ke Linode karena alasan tertentu.

Cukup intro kurang jelasnya, sekarang kita langsung ke tutorial cara install Gitea di Debian 8.

Tambah User

Untuk menjalankan proses gitea, sebaiknya menggunakan user biasa (bukan root). Disini kita akan membuat user baru jaranguda

adduser jaranguda

Download Gitea

Buat direktori untuk menyimpan semua data gitea di /home/jaranguda/gitea, lalu download gitea

su jaranguda;
mkdir /home/jaranguda/gitea; cd /home/jaranguda/gitea
wget https://dl.gitea.io/gitea/1.0.1/gitea-1.0.1-linux-amd64 -O gitea
chmod +x gitea

Jalankan gitea

./gitea web

Buka di browser http://ip.address:3000
gitea install

Disini saya menggunakan SQLite, pilih Database Type SQLite3
Ingat untuk mengganti Application URL ke domain/subdomain anda contoh http://git.jaranguda.com:3000/
klik Admin Account Settings, input username dan password anda.
Akhiri dengan mengklik Install. User yang anda tambahkan adalah user admin, yang bisa mengakses semua konfigurasi gitea.

Setting SSL

Untuk setting SSL kita akan menggunakan reverse proxy nginx dan letsencrypt. Disini saya tidak akan membahas cara mengarahkan DNS dari IP ke subdomain/domain anda, biar tutorialnya ngga terlalu panjang dan sudah banyak yang membahasnya.

Install nginx

apt-get install nginx -y

Install certbot

echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list
apt-get update
apt-get install certbot -t jessie-backports -y

Install Let’s encrypt

certbot certonly --webroot -w /var/www/html/ -d git.jaranguda.com

letsencrypt ssl sukses

Buat vhost untuk domain gitea anda (cth git.jaranguda.com) /etc/nginx/sites-available/git.jaranguda.com.conf

# /etc/nginx/sites-available/git.jaranguda.com.conf
server {
    listen 80;
    server_name git.jaranguda.com;
    return 301 https://$server_name$request_uri;
}
 
server {
    listen 443 ssl;
    server_name git.jaranguda.com;
 
    ssl_certificate /etc/letsencrypt/live/git.jaranguda.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/git.jaranguda.com/privkey.pem;
 
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://localhost:3000;
    }
}

Buat symbolic link, agar vhost/server block tersebut di aktifkan

ln -s /etc/nginx/sites-available/git.jaranguda.com.conf /etc/nginx/sites-enabled/git.jaranguda.com.conf

Tes konfigurasi nginx lalu restart

nginx -t; service nginx restart; service nginx status

Buka domain gitea anda di browser, bukan lagi menggunakan git.jaranguda.com:3000 tetapi git.jaranguda.com
gitea ssl
Semua akses ke git.jaranguda.com akan di forward ke https://git.jaranguda.com

Leave a comment

Your email address will not be published. Required fields are marked *