Gogs adalah server git open-source yang dihosting sendiri yang ditulis dalam Go. Ini mencakup editor file repositori, pelacakan masalah proyek, dan wiki bawaan.
Gogsis merupakan aplikasi ringan dan dapat diinstal pada sistem berdaya rendah. Jika Anda mencari alternatif untuk Gitlab dengan jejak memori yang jauh lebih kecil dan Anda tidak membutuhkan semua fitur yang ditawarkan Gitlab, 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 Anda Mulai #
Gogs dapat menggunakan SQLite, PostgreSQL, atau MySQL/MariaDBdatabase untuk menyimpan semua datanya.
Dalam tutorial ini, kita akan menggunakan SQLite sebagai database pilihan. Jika SQLite tidak diinstal pada sistem Anda, Anda dapat menginstalnya dengan mengetik:
sudo apt install sqlite3
Untuk lapisan keamanan tambahan, disarankan untuk menyiapkan firewall dasar. Anda dapat mengikuti langkah-langkah di Panduan Cara Mengatur Firewall dengan UFW di Ubuntu 18.04.
Memasang Gogs #
Kami akan menginstal Gogs dari biner. Instalasi adalah proses yang cukup mudah.
Instal Git #
Langkah pertama adalah menginstal Giton server Anda. Untuk melakukannya, segarkan indeks paket lokal dan instal paket git dengan menjalankan perintah berikut sebagai pengguna sudo:
sudo apt update
sudo apt install git
Verifikasi instalasi dengan menampilkan versi Git:
git --version
git version 2.17.1
Buat pengguna Git #
Buat pengguna sistem baru untuk menjalankan layanan Gogs dengan mengetik:
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
Perintah akan membuat pengguna 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' ...
Unduh biner Gogs #
Kunjungi halaman Unduh Gogs dan unduh biner terbaru untuk arsitektur Anda. Pada saat penulisan, versi terbaru adalah 0.11.86, jika ada versi baru yang tersedia ubah VERSION
variabel dalam perintah di bawah ini.
Unduh arsip Gogs di /tmp
direktori 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 /home/git
direktori:
sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git
Jalankan perintah berikut untuk mengubah kepemilikan direktori instalasi Gogs menjadi pengguna dan grup git:
sudo chown -R git: /home/git/gogs
Buat File Unit systemd #
Gogs dilengkapi dengan file unit Systemd yang sudah dikonfigurasikan agar sesuai dengan pengaturan kami.
Salin file ke /etc/systemd/system/
direktori 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 berhasil dimulai:
* 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 penginstal web #
Sekarang setelah Gogs diunduh dan dijalankan, sekarang saatnya untuk menyelesaikan penginstalan melalui antarmuka web.
Buka browser Anda, ketik http://YOUR_DOMAIN_IR_IP:3000
dan layar seperti berikut akan muncul:
Pengaturan Basis Data:
- Jenis Basis Data:SQLite3
- Jalur:Gunakan jalur absolut,
/home/git/gogs/gogs.db
Pengaturan Umum Aplikasi
- Nama Aplikasi:Masukkan nama organisasi Anda
- Jalur Root Repositori:Biarkan
/home/git/gogs-repositories
default - Jalankan Pengguna:git
- Domain:Masukkan domain atau alamat IP server Anda.
- Port SSH:22, ubah jika SSH mendengarkan di Port lain
- Port HTTP:3000
- URL Aplikasi:Gunakan http dan domain atau alamat IP server Anda.
- Jalur Log:Biarkan
/home/git/gogs/log
default
Setelah selesai tekan tombol "Instal Gogs". Instalasi instan dan ketika selesai Anda akan diarahkan ke halaman login.
Klik tautan “Daftar sekarang”.
Pengguna terdaftar pertama secara otomatis ditambahkan ke grup Admin.
Itu dia. Gogs telah diinstal pada mesin Ubuntu Anda.
Mengonfigurasi Nginx sebagai Proksi Penghentian SSL #
Langkah ini opsional tetapi sangat disarankan. Untuk menggunakan Nginx sebagai proxy terbalik, 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 buat sertifikat SSL Let's Encrypt gratis dengan mengikuti panduan di bawah ini:
- Cara Menginstal Nginx di Ubuntu 18.04
- Amankan Nginx dengan Let's Encrypt di Ubuntu 18.04
Setelah selesai, buka editor teks Anda dan edit file blok server domain:
sudo nano /etc/nginx/sites-enabled/gogs.example.com
/etc/nginx/sites-enabled/gogs.example.comserver {
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 untuk mengganti gogs.example.com dengan domain Gogs Anda dan mengatur jalur yang benar ke file sertifikat SSL. Semua permintaan HTTP akan dialihkan ke HTTPS Mulai ulang layanan 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
/home/git/gogs/custom/conf/app.ini[server]
DOMAIN = gogs.example.com
ROOT_URL = https://gogs.example.com/
Mulai ulang layanan Gogs dengan mengetik:
sudo systemctl restart gogs
Pada titik ini, Gogs dikonfigurasi dan Anda dapat mengaksesnya di:https://gogs.example.com
Mengonfigurasi Notifikasi Email #
Agar Gogs dapat mengirim email pemberitahuan, Anda dapat menginstal Postfix atau menggunakan beberapa layanan surat transaksional seperti SendGrid, MailChimp, MailGun atau SES.
Untuk mengaktifkan notifikasi email, buka file konfigurasi dan edit baris berikut:
sudo nano /home/git/gogs/custom/conf/app.ini
/home/git/gogs/custom/conf/app.ini[mailer]
ENABLED = true
HOST = SMTP_SERVER:SMTP_PORT
FROM = SENDER_EMAIL
USER = SMTP_USER
PASSWD = YOUR_SMTP_PASSWORD
Pastikan Anda memasukkan informasi server SMTP yang benar.
Mulai ulang layanan Gogs agar perubahan diterapkan:
sudo systemctl restart gogs
Gogs juga memungkinkan Anda terhubung ke Slack dengan membuat webhookan web dan mengirim notifikasi ke saluran Slack Anda.
Mengupgrade Gogs #
Untuk meningkatkan versi Gogs, diperlukan beberapa langkah manual.
-
Pertama-tama hentikan layanan Gogs:
sudo systemctl stop gogs
-
Ganti nama direktori instalasi Gogs.
sudo mv /home/git/gogs{,_old}
-
Unduh versi Gogs terbaru dan pindahkan ke
/home/git
direktori: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 sebenarnya. -
Salin
custom
,data
,log
direktori ke direktori yang diekstrak menggunakan perintah rsync berikut:sudo rsync -a /home/git/gogs_old/{custom,data,log,gogs.db} /home/git/gogs/
-
Terakhir, mulai layanan Gogs:
sudo systemctl restart gogs
Itu dia.