Sconto del 50%. tutti i piani, tempo limitato. A partire da $2.48/mo
Gog

Gog

Gogs è un servizio Git self-hosted indolore. Più leggero di Gitea e GitLab, scritto in Go, funziona comodamente su un VPS da 512 MB o anche su un Raspberry Pi. Il server Git originale basato su Go, predecessore di Gitea, è ancora attivamente mantenuto per gli utenti che preferiscono una superficie più piccola.

Versione

0.14.2

Sistema operativo

Ubuntu Server 24.04 LTS

minimo RAM

1 GB

Tipi di IP

IPV4,IPV6

Accesso

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

Disattiva l'autoregistrazione (facoltativo)

Per impostazione predefinita, l'autoregistrazione dell'utente è abilitata.

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

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

3. Riavvia Gogs:

systemctl restart gogs

File e directory importanti

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

Utilizzo di Git

HTTPS (certificato autofirmato):

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 del servizio

Gog:

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, riavviare il servizio utilizzando systemctl restart gogs.
  • Il limite di caricamento di Nginx è definito in /etc/nginx/sites-available/gogs.conf utilizzando client_max_body_size. Aumentalo per repository di grandi dimensioni e riavvia Nginx.
  • Per distribuzioni di grandi dimensioni, puoi rimuovere il commento LimitMEMLOCK=infinity E LimitNOFILE=65535 in /etc/systemd/system/gogs.service, quindi corri systemctl daemon-reload e riavvia Gogs.
  • Le credenziali del database sono definite in /etc/gogs/conf/app.ini.
  • Per l'utilizzo in produzione, si consiglia di sostituire il certificato autofirmato con un certificato Let's Encrypt valido.
  • Se si utilizza un certificato autofirmato, è necessaria la clonazione HTTPS 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 sostituiscili entrambi server_name <IP>; con il tuo dominio (<your-domain>) sia per i blocchi HTTP (porta 80) sia HTTPS (porta 443):

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

4. Installa Certbot:

apt install -y certbot python3-certbot-nginx

5. Esegui il comando seguente 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

Altro in Strumenti DevOps

App correlate.

Distribuisci Gogs ora. Da 2,48 $/mese.