50% di sconto tutti i piani, offerta a tempo limitato. A partire da $2.48/mo
Gogs

Gogs

Gogs è un servizio Git self-hosted senza complicazioni. Più leggero di Gitea e GitLab, scritto in Go, gira tranquillamente su un VPS da 512 MB o persino su un Raspberry Pi. Il server Git originale basato su Go, predecessore di Gitea, ancora attivamente mantenuto per chi preferisce un'impronta ridotta.

Versione

0.14.2

Sistema Operativo

Server Ubuntu 24.04 LTS

RAM minimo

1 GB

Tipi IP

IPV4,IPV6

Accesso

  • Apri il browser e visita: https://<SERVER_IP>
  • Un avviso SSL del browser è previsto (certificato self-signed)
  • Registra un nuovo account
  • Il primo account registrato diventa Amministratore

Disabilita la registrazione pubblica (opzionale)

Per impostazione predefinita, la registrazione degli utenti è abilitata.

1. Modifica il file di configurazione: /etc/gogs/conf/app.ini

2. Sotto il [auth] sezione, modifica DISABLE_REGISTRATION = false to DISABLE_REGISTRATION = true

3. Riavvia Gogs:

systemctl restart gogs

File e directory principali

  • Cartella di installazione: /opt/gogs
  • File di configurazione: /etc/gogs/conf/app.ini
  • Dati dell'applicazione: /var/lib/gogs
  • Archivi: /var/lib/gogs/repositories
  • Registri: /var/log/gogs
  • Servizio Systemd: /etc/systemd/system/gogs.service
  • Configurazione Nginx: /etc/nginx/sites-available/gogs.conf
  • Certificati TLS: /etc/nginx/ssl/

Utilizzo di Git

HTTPS (certificato self-signed):

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

SSH (server integrato):

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

Gestione dei servizi

Gogs:

systemctl status gogs
systemctl restart gogs

Nginx:

systemctl status nginx
systemctl restart nginx

PostgreSQL:

systemctl status postgresql
systemctl restart postgresql

Note

  • Il file di configurazione principale si trova in /etc/gogs/conf/app.ini. Dopo aver modificato il file di configurazione, riavvia il servizio con systemctl restart gogs.
  • Il limite di upload di Nginx è definito in /etc/nginx/sites-available/gogs.conf utilizzando client_max_body_size. Aumentarlo per repository di grandi dimensioni e riavviare Nginx.
  • Per deployment di grandi dimensioni, puoi decommentare LimitMEMLOCK=infinity e LimitNOFILE=65535 in /etc/systemd/system/gogs.service, quindi esegui systemctl daemon-reload e riavviare Gogs.
  • Le credenziali del database sono definite in /etc/gogs/conf/app.ini.
  • Per un utilizzo in produzione, si consiglia di sostituire il certificato autofirmato con un certificato Let's Encrypt valido.
  • Se si utilizza un certificato autofirmato, il clone via HTTPS richiede GIT_SSL_NO_VERIFY=true.

Abilitare SSL con un dominio

1. Punta il tuo dominio all'IP del server.

2. Aggiorna la configurazione di Gogs (/etc/gogs/conf/app.ini):

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

3. Riavvia il servizio Gogs per applicare le modifiche:

systemctl restart gogs

3. Modifica la configurazione di Nginx e sostituisci entrambi server_name <IP>; con il tuo dominio (<your-domain>) per i blocchi HTTP (porta 80) e HTTPS (porta 443):

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

4. Installa Certbot:

apt install -y certbot python3-certbot-nginx

5. Esegui il seguente comando per generare un certificato Let's Encrypt valido:

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

6. Sostituisci i percorsi SSL nella configurazione di 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. Riavvia Nginx per applicare le modifiche:

systemctl restart nginx

8. Apri il browser e visita: https://yourdomain.com

Altri strumenti DevOps

App correlate.

Installa subito Gogs. A partire da $2,48/mese.