Gogs adalah server git open source yang di-hosting sendiri (self-hosted) yang ditulis dalam Go. Gogs meliputi file editor repositori, pelacakan masalah, dan wiki bawaan.
Gogs 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 bell dan whistles yang ditawarkan Gitlab, maka Anda harus mencoba Gogs.
Tutorial ini mencakup langkah-langkah untuk menginstal dan mengkonfigurasi Gogs di Ubuntu 18.04. Instruksi yang sama berlaku untuk Ubuntu 16.04 dan distribusi berbasis Ubuntu lainnya.
Sebelum Memulai
Gogs dapat menggunakan database SQLite, PostgreSQL, atau MySQL /MariaDB untuk menyimpan semua datanya.
Dalam tutorial ini, kita akan menggunakan SQLite sebagai database. Jika SQLite belum diinstal pada sistem, Anda dapat menginstalnya dengan mengetik:
sudo apt install sqlite3
Untuk lapisan keamanan tambahan, disarankan untuk membuat firewall dasar. Anda dapat mengikuti langkah-langkah di Cara Setting Firewall dengan UFW di Ubuntu 18.04.
Mulai Install Gogs
Kami akan menginstal Gogs dari binary. Instalasi adalah proses yang sangat mudah.
Install Git
Langkah pertama adalah instal Git di server Anda. Untuk melakukannya, refresh indeks paket lokal dan instal paket git dengan menjalankan perintah berikut sebagai user sudo:
sudo apt update sudo apt install git
Verifikasi installasi dengan mengetik perintah berikut
git --version
git version 2.17.1
Buat user Git
Buat user sistem baru untuk menjalankan service Gogs dengan mengetik:
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
Perintah akan membuat user 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 Gogs
Kunjungi halaman download Gogs dan download binary terbaru sesuai dengan arsitektur sistem Anda. Pada saat penulisan, versi terbaru adalah 0.11.86, jika ada versi baru yang tersedia ubah variabelVERSION
dalam perintah di bawah ini.
Unduh arsip Gogs di direktori / tmp menggunakan perintah wget
berikut:
VERSION=0.11.86 wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp
Setelah unduhan selesai, ekstrak file tar.gz Gogs dan pindahkan ke direktori /home/git
:
sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git
Jalankan perintah berikut untuk mengubah kepemilikan direktori instalasi Gogs ke git pengguna dan grup:
sudo chown -R git: /home/git/gogs
Buat Unit File Systemd
Gogs dilengkapi dengan unit file Systemd yang sudah dikonfigurasi untuk cocok dengan pengaturan kita secara otomatis.
Salin file ke direktori /etc/systemd/system/
dengan mengetik:
sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/
Setelah selesai, mulai dan aktifkan layanan Gogs:
sudo systemctl start gogs sudo systemctl enable gogs
Verifikasi bahwa layanan dimulai dengan sukses:
* gogs.service - Gogs Loaded: loaded (/etc/systemd/system/gogs.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-04-25 04:13:44 PDT; 9s ago Main PID: 14376 (gogs) Tasks: 8 (limit: 2319) CGroup: /system.slice/gogs.service `-14376 /home/git/gogs/gogs web
Instal Gogs menggunakan web installer
Sekarang Gogs sudah diunduh dan dijalankan, sekarang saatnya menyelesaikan instalasi melalui antarmuka web.
Buka browser Anda, ketik http://DOMAIN_atau_IP:3000
dan layar yang serupa dengan yang berikut akan muncul:
Database Settings:
- Database Type: SQLite3
- Path: Gunakan PATH absolute misal
/home/git/gogs/gogs.db
Application General Settings
- Application Name: Masukkan nama organisasi
- Repository Root Path: Biarkan default
/home/git/gogs-repositories
- Run User: git
- Domain: Masukkan domain atau alamat IP server Anda.
- SSH Port: 22, ubah bagian ini jika SSH listening pada port lain
- HTTP Port: 3000
- Application URL: Gunakan http dan domain atau alamat IP server Anda.
- Log Path: Biarkan default
/home/git/gogs/log
Anda juga dapat mengubah pengaturan di kemudian hari dengan mengedit file konfigurasi Gogs secara manual (baik dengan text editor nano
atau vim
).
Setelah selesai tekan tombol “Install Gogs”. Instalasi akan berjalan instant dan ketika selesai Anda akan diarahkan ke halaman login.
Klik tautan “Sign up now” .
Pengguna yang terdaftar pertama, secara otomatis akan ditambahkan ke grup Admin.
Dengan begini, Gogs telah diinstal pada mesin Ubuntu Anda.
Gogs + Nginx sebagai SSL Reverse Proxy
Langkah ini opsional tetapi sangat dianjurkan. 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 gogs.example.com.
Pertama, instal Nginx dan hasilkan sertifikat SSL gratis dari Let’s Encrypt dengan mengikuti panduan di bawah ini:
Setelah selesai, buka editor teks Anda dan edit file server block domain:
sudo nano /etc/nginx/sites-enabled/gogs.example.com
server { listen 80; server_name gogs.example.com; include snippets/letsencrypt.conf; return 301 https://gogs.example.com$request_uri; } server { listen 443 ssl http2; server_name gogs.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/gogs.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/gogs.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/gogs.example.com/chain.pem; include snippets/letsencrypt.conf; include snippets/ssl.conf; # log files access_log /var/log/nginx/gogs.example.com.access.log; error_log /var/log/nginx/gogs.example.com.error.log; # Handle / requests location / { proxy_redirect off; proxy_pass http://127.0.0.1:3000; } }
Jangan lupa mengganti gogs.example.com
dengan domain Gogs Anda dan set jalur yang benar ke file sertifikat SSL.
Langkah selanjutnya adalah Restart Nginx agar perubahan diterapkan:
sudo systemctl restart nginx
Selanjutnya, kita perlu mengubah domain Gogs dan url root. Untuk melakukannya, buka file konfigurasi dan edit baris berikut:
sudo nano /home/git/gogs/custom/conf/app.ini
[server] DOMAIN = gogs.example.com ROOT_URL = https://gogs.example.com/
Restart Gogs dengan mengetik :
sudo systemctl restart gogs
Pada titik ini, Gogs dikonfigurasi dan Anda dapat mengaksesnya di: https://gogs.example.com
Konfigurasi Email Notifikasi Gogs
Agar Gogs dapat mengirim email pemberitahuan, Anda dapat menginstal Postfix atau menggunakan layanan email transaksional seperti SendGrid, MailChimp, MailGun atau SES.
Untuk mengaktifkan pemberitahuan email, buka file konfigurasi dan edit baris berikut:
sudo nano /home/git/gogs/custom/conf/app.ini
[mailer] ENABLED = true HOST = SMTP_SERVER:SMTP_PORT FROM = SENDER_EMAIL USER = USER_SMTP PASSWD = MASUKKAN_PASSWORD_SMTP
Pastikan Anda memasukkan informasi SMTP server dengan benar.
Mulai ulang layanan Gogs agar perubahan diterapkan:
sudo systemctl restart gogs
Gogs juga memungkinkan Anda untuk terhubung ke Slack dengan membuat web webhook dan mengirim pemberitahuan ke channel Slack Anda.
Cara Upgrade Gogs di Ubuntu 18.04
Untuk upgrade Gogs, beberapa langkah manual berikut diperlukan.
- Pertama-tama hentikan layanan Gogs:
sudo systemctl stop gogs
- Rename direktori instalasi Gogs.
sudo mv /home/git/gogs{,_old}
- Unduh versi Gogs terbaru dan pindahkan ke direktori
/home/git
:VERSION=<THE_LATEST_GOGS_VERSION> wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git
Pastikan Anda mengubah
VERSION
dengan versi rilis Gogs yang terbaru (versi release). - Copy direktori
custom
,data
,log
direktori yang diekstraksi menggunakan perintah rsync berikut :sudo rsync -a /home/git/gogs_old/{custom,data,log} /home/git/gogs/
- Terakhir, start Gogs service:
sudo systemctl restart gogs
Selesai.
Kesimpulan
Tutorial ini memandu Anda melalui instalasi dan konfigurasi Gogs di Ubuntu 18.04. Anda sekarang dapat membuat project pertama Anda dan mulai menggunakan server Gogs baru Anda.