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 utilizzandosystemctl restart gogs. - Il limite di caricamento di Nginx è definito in
/etc/nginx/sites-available/gogs.confutilizzandoclient_max_body_size. Aumentalo per repository di grandi dimensioni e riavvia Nginx. - Per distribuzioni di grandi dimensioni, puoi rimuovere il commento
LimitMEMLOCK=infinityELimitNOFILE=65535in/etc/systemd/system/gogs.service, quindi corrisystemctl daemon-reloade 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