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 consystemctl restart gogs. - Il limite di upload di Nginx è definito in
/etc/nginx/sites-available/gogs.confutilizzandoclient_max_body_size. Aumentarlo per repository di grandi dimensioni e riavviare Nginx. - Per deployment di grandi dimensioni, puoi decommentare
LimitMEMLOCK=infinityeLimitNOFILE=65535in/etc/systemd/system/gogs.service, quindi eseguisystemctl daemon-reloade 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