diskon 50% semua paket, waktu terbatas. Mulai dari $2.48/mo
Gogs

Gogs

Gogs adalah layanan Git self-hosted yang mudah dikelola. Lebih ringan dari Gitea dan GitLab, ditulis dalam Go, berjalan lancar di VPS 512 MB bahkan Raspberry Pi. Server Git berbasis Go yang pertama, pendahulu Gitea, masih aktif dikembangkan untuk pengguna yang menginginkan solusi lebih minimalis.

Versi

0.14.2

Sistem Operasi

Server Ubuntu 24.04 LTS

RAM minimum

1 GB

Jenis IP

IPV4,IPV6

Akses

  • Buka browser Anda dan kunjungi: https://<SERVER_IP>
  • Peringatan SSL di browser adalah hal yang wajar (sertifikat self-signed)
  • Daftarkan akun baru
  • Akun yang pertama kali didaftarkan menjadi Administrator

Nonaktifkan Registrasi Mandiri (Opsional)

Secara default, registrasi mandiri pengguna diaktifkan.

1. Edit file konfigurasi: /etc/gogs/conf/app.ini

2. Di bawah [auth] bagian, ubah DISABLE_REGISTRATION = false to DISABLE_REGISTRATION = true

3. Mulai ulang Gogs:

systemctl restart gogs

File & Direktori Penting

  • Direktori instalasi: /opt/gogs
  • File konfigurasi: /etc/gogs/conf/app.ini
  • Data aplikasi: /var/lib/gogs
  • Repositori: /var/lib/gogs/repositories
  • Catatan: /var/log/gogs
  • Layanan Systemd: /etc/systemd/system/gogs.service
  • Konfigurasi Nginx: /etc/nginx/sites-available/gogs.conf
  • Sertifikat TLS: /etc/nginx/ssl/

Penggunaan Git

HTTPS (sertifikat self-signed):

GIT_SSL_NO_VERIFY=true git clone https://<SERVER_IP>/<USERNAME>/<REPOSITORY>.git

SSH (server bawaan):

git clone ssh://git@<SERVER_IP>:2222/<USERNAME>/<REPOSITORY>.git

Manajemen Layanan

Gogs:

systemctl status gogs
systemctl restart gogs

Nginx:

systemctl status nginx
systemctl restart nginx

PostgreSQL:

systemctl status postgresql
systemctl restart postgresql

Catatan

  • File konfigurasi utama berada di /etc/gogs/conf/app.ini. Setelah mengubah file konfigurasi, restart layanan menggunakan systemctl restart gogs.
  • Batas upload Nginx ditentukan di /etc/nginx/sites-available/gogs.conf menggunakan client_max_body_sizeTingkatkan nilainya untuk repositori berukuran besar, lalu restart Nginx.
  • Untuk deployment skala besar, Anda bisa menghapus komentar pada LimitMEMLOCK=infinity dan LimitNOFILE=65535 in /etc/systemd/system/gogs.service, kemudian jalankan systemctl daemon-reload dan restart Gogs.
  • Kredensial database didefinisikan di /etc/gogs/conf/app.ini.
  • Untuk penggunaan produksi, disarankan mengganti sertifikat self-signed dengan sertifikat Let's Encrypt yang valid.
  • Jika menggunakan sertifikat self-signed, kloning via HTTPS memerlukan GIT_SSL_NO_VERIFY=true.

Mengaktifkan SSL dengan Domain

1. Arahkan domain Anda ke IP server.

2. Perbarui konfigurasi Gogs (/etc/gogs/conf/app.ini):

EXTERNAL_URL = https://yourdomain.com/
DOMAIN = yourdomain.com
SSH_DOMAIN = yourdomain.com

3. Restart layanan Gogs untuk menerapkan perubahan:

systemctl restart gogs

3. Edit konfigurasi Nginx dan ganti keduanya server_name <IP>; dengan domain Anda (<your-domain>) untuk blok HTTP (port 80) dan HTTPS (port 443):

vim /etc/nginx/sites-available/gogs.conf

4. Instal Certbot:

apt install -y certbot python3-certbot-nginx

5. Jalankan perintah berikut untuk membuat sertifikat Let's Encrypt yang valid:

certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com

6. Ganti path SSL di konfigurasi Nginx:

vim /etc/nginx/sites-available/gogs.conf
# Before:
    # ssl_certificate /etc/nginx/ssl/gogs.crt;
    # ssl_certificate_key /etc/nginx/ssl/gogs.key;
# After:
    # ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

7. Restart Nginx untuk menerapkan perubahan:

systemctl restart nginx

8. Buka browser dan kunjungi: https://yourdomain.com

Lainnya di DevOps Tools

Aplikasi terkait.

Deploy Gogs sekarang. Mulai dari $2.48/bulan.