50% off 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.

Version

0.14.2

Operating System

Ubuntu Server 24.04 LTS

Min. RAM

1 GB

IP Types

IPV4,IPV6

Access

  • 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. Under the [auth] section, change: DISABLE_REGISTRATION = false to DISABLE_REGISTRATION = true

3. Restart Gogs:

systemctl restart gogs

File & Direktori Penting

  • Install directory: /opt/gogs
  • Configuration file: /etc/gogs/conf/app.ini
  • Application data: /var/lib/gogs
  • Repositories: /var/lib/gogs/repositories
  • Logs: /var/log/gogs
  • Systemd service: /etc/systemd/system/gogs.service
  • Nginx config: /etc/nginx/sites-available/gogs.conf
  • TLS certificates: /etc/nginx/ssl/

Git Usage

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

Service Management

Gogs:

systemctl status gogs
systemctl restart gogs

Nginx:

systemctl status nginx
systemctl restart nginx

PostgreSQL:

systemctl status postgresql
systemctl restart postgresql

Notes

  • 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 using client_max_body_sizeTingkatkan nilainya untuk repositori berukuran besar, lalu restart Nginx.
  • Untuk deployment skala besar, Anda bisa menghapus komentar pada LimitMEMLOCK=infinity and LimitNOFILE=65535 in /etc/systemd/system/gogs.service, then run 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. Install 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

Related apps.

Deploy Gogs sekarang. From $2.48/mo.