Installazione Gitea · 10 min read · Oct 10, 2025
Come installare Gitea su Ubuntu 22.04

Gitea è un servizio Git gratuito, open-source e auto-ospitato. È scritto in linguaggio GO e fornisce un modo più semplice per ospitare il proprio sistema di controllo versione su Internet. È semplice, leggero e può essere installato su sistemi a bassa potenza. È molto simile a GitHub e GitLab e offre un ricco set di funzionalità come un editor di file del repository, tracciamento delle problematiche del progetto, gestione degli utenti, notifiche, un wiki integrato e molto altro. È multipiattaforma e può essere installato su tutti i principali sistemi operativi, inclusi Linux, macOS, Windows, architetture ARM e PowerPC.
In questo tutorial, ti mostreremo come installare il servizio Git Gitea con Nginx e SSL Let’s Encrypt su Ubuntu 22.04.
Requisiti
- Un server che esegue Ubuntu 22.04.
- Un nome di dominio valido puntato con l’IP del tuo server.
- Una password di root configurata sul tuo server.
Iniziare
Per prima cosa, aggiorna e aggiorna tutti i pacchetti di sistema all’ultima versione eseguendo il seguente comando:
apt update -y
apt upgrade -ySuccessivamente, installa il pacchetto Git eseguendo il seguente comando:
apt-get install git -yUna volta installato il pacchetto Git, puoi procedere al passaggio successivo.
Installa e configura MariaDB
Gitea utilizza MariaDB come backend del database. Quindi dovrai installarlo sul tuo server. Puoi installarlo eseguendo il seguente comando:
apt install mariadb-server -yDopo l’installazione. Quindi, dovrai mettere in sicurezza MariaDB e impostare una password di root. Puoi metterlo in sicurezza eseguendo lo script mysql_secure_installation:
mysql_secure_installationQuesto script imposterà la password di root, rimuoverà gli utenti anonimi, disabiliterà il login remoto per root e rimuoverà il database di test come mostrato di seguito:
Enter current password for root (enter for none):
Set root password? [Y/n]: Y
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Una volta che MariaDB è stato messo in sicurezza, accedi alla shell di MariaDB con il seguente comando:
mysql -u root -pInserisci la tua password di root quando richiesto. Quindi, cambia il GLOBAL innodeb_file_per_table in On:
MariaDB [(none)]>SET GLOBAL innodb_file_per_table = ON;Successivamente, crea un database e un utente per Gitea con il seguente comando:
MariaDB [(none)]>CREATE DATABASE gitea;
MariaDB [(none)]>CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'password';Successivamente, concedi tutti i privilegi al database giteadb:
MariaDB [(none)]>GRANT ALL ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;Successivamente, aggiorna il set di caratteri del database con il seguente comando:
MariaDB [(none)]>ALTER DATABASE gitea CHARACTER SET = utf8mb4 COLLATE utf8mb4_unicode_ci;Infine, svuota i privilegi ed esci dalla shell di MariaDB con il seguente comando:
MariaDB [(none)]>FLUSH PRIVILEGES;
MariaDB [(none)]>EXIT;Successivamente, dovrai modificare il file di configurazione predefinito di MariaDB e aggiungere i parametri InnoDB:
nano /etc/mysql/mariadb.conf.d/50-server.cnfAggiungi le seguenti righe all’interno della sezione [mysqld]:
innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_default_row_format = dynamic
Salva e chiudi il file. Quindi, riavvia il servizio MariaDB per applicare le modifiche:
systemctl restart mariadbA questo punto, il tuo database MariaDB è configurato. Puoi ora procedere al passaggio successivo.
Installa e configura Gitea
Per prima cosa, visita la pagina di download di Gitea, scegli l’ultima versione e scarica l’ultima versione binaria di Gitea utilizzando il seguente comando:
wget https://dl.gitea.io/gitea/1.17.1/gitea-1.17.1-linux-amd64Una volta completato il download, copia il file scaricato nella directory /usr/bin/ e dai i permessi di esecuzione:
cp gitea-1.17.1-linux-amd64 /usr/bin/gitea
chmod 755 /usr/bin/giteaSuccessivamente, crea un utente di sistema per Gitea con il seguente comando:
adduser --system --shell /bin/bash --group --disabled-password --home /home/git gitSuccessivamente, crea una struttura di directory per Gitea con il seguente comando:
mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
chown git:git /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
chmod 750 /var/lib/gitea/{data,indexers,log}
chmod 770 /etc/giteaUna volta terminato, puoi procedere al passaggio successivo.
Crea il file di servizio Gitea Systemd
Successivamente, dovrai creare un file di servizio systemd per gestire il servizio Gitea con systemd. Puoi crearlo con il seguente comando:
nano /etc/systemd/system/gitea.serviceAggiungi le seguenti righe:
[Unit]
Description=Gitea
After=syslog.target
After=network.target
After=mysql.service
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
Salva e chiudi il file. Quindi, ricarica il demone systemd e avvia il servizio Gitea con il seguente comando:
systemctl daemon-reload
systemctl start giteaPuoi controllare lo stato del servizio Gitea con il seguente comando:
systemctl status giteaDovresti vedere il seguente output:
? gitea.service - Gitea
Loaded: loaded (/etc/systemd/system/gitea.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2022-08-21 12:19:23 UTC; 8s ago
Main PID: 24766 (gitea)
Tasks: 6 (limit: 2242)
Memory: 121.2M
CPU: 800ms
CGroup: /system.slice/gitea.service
??24766 /usr/bin/gitea web -c /etc/gitea/app.ini
Aug 21 12:19:23 ubuntu2204 gitea[24766]: 2022/08/21 12:19:23 ...s/install/setting.go:21:PreloadSettings() [I] AppPath: /usr/bin/gitea
Aug 21 12:19:23 ubuntu2204 gitea[24766]: 2022/08/21 12:19:23 ...s/install/setting.go:22:PreloadSettings() [I] AppWorkPath: /var/lib/gitea
Aug 21 12:19:23 ubuntu2204 gitea[24766]: 2022/08/21 12:19:23 ...s/install/setting.go:23:PreloadSettings() [I] Custom path: /var/lib/gitea/cus>
Aug 21 12:19:23 ubuntu2204 gitea[24766]: 2022/08/21 12:19:23 ...s/install/setting.go:24:PreloadSettings() [I] Log path: /var/lib/gitea/log
Aug 21 12:19:23 ubuntu2204 gitea[24766]: 2022/08/21 12:19:23 ...s/install/setting.go:25:PreloadSettings() [I] Configuration file: /etc/gitea/>
Aug 21 12:19:23 ubuntu2204 gitea[24766]: 2022/08/21 12:19:23 ...s/install/setting.go:26:PreloadSettings() [I] Prepare to run install page
Aug 21 12:19:23 ubuntu2204 gitea[24766]: 2022/08/21 12:19:23 ...s/install/setting.go:29:PreloadSettings() [I] SQLite3 is supported
Aug 21 12:19:23 ubuntu2204 gitea[24766]: 2022/08/21 12:19:23 cmd/web.go:217:listen() [I] [630222cb-6] Listen: http://0.0.0.0:3000
Aug 21 12:19:23 ubuntu2204 gitea[24766]: 2022/08/21 12:19:23 cmd/web.go:221:listen() [I] [630222cb-6] AppURL(ROOT_URL): http://localhost:3000/
Aug 21 12:19:23 ubuntu2204 gitea[24766]: 2022/08/21 12:19:23 ...s/graceful/server.go:61:NewServer() [I] [630222cb-6] Starting new Web server:>
Successivamente, abilita il servizio Gitea per avviarsi al riavvio del sistema con il seguente comando:
systemctl enable giteaA questo punto, Gitea è avviato e in ascolto sulla porta 3000. Puoi ora procedere al passaggio successivo.
Configura Nginx come reverse proxy per Gitea
Per impostazione predefinita, Gitea ascolta sulla porta 3000. Quindi, dovrai configurare Nginx come reverse proxy per accedere a Gitea senza specificare la porta.
Per prima cosa, installa il server web Nginx eseguendo il seguente comando:
apt-get install nginx -yUna volta installato, crea un nuovo file di configurazione del virtual host Nginx per Gitea:
nano /etc/nginx/sites-available/giteaAggiungi le seguenti righe:
upstream gitea {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name git.example.com;
root /var/lib/gitea/public;
access_log off;
error_log off;
location / {
try_files maintain.html $uri $uri/index.html @node;
}
location @node {
client_max_body_size 0;
proxy_pass http://localhost:3000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_max_temp_file_size 0;
proxy_redirect off;
proxy_read_timeout 120;
}
}
Salva e chiudi il file. Quindi, abilita il file di configurazione del virtual host Nginx con il seguente comando:
ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/Infine, riavvia il servizio Nginx e controlla lo stato del servizio Nginx con il seguente comando:
systemctl restart nginxsystemctl status nginxDovresti ottenere il seguente output:
? nginx.service - Un server web ad alte prestazioni e un server reverse proxy
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2022-08-21 12:21:23 UTC; 5s ago
Docs: man:nginx(8)
Process: 24799 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 24800 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 24801 (nginx)
Tasks: 2 (limit: 2242)
Memory: 4.5M
CPU: 44ms
CGroup: /system.slice/nginx.service
??24801 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
??24802 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Aug 21 12:21:23 ubuntu2204 systemd[1]: Starting Un server web ad alte prestazioni e un server reverse proxy...
Aug 21 12:21:23 ubuntu2204 systemd[1]: Started Un server web ad alte prestazioni e un server reverse proxy.
A questo punto, Nginx è configurato per servire Gitea. Puoi ora procedere al passaggio successivo.
Metti in sicurezza Gitea con SSL Let’s Encrypt
Per prima cosa, dovrai installare il client Certbot per installare e gestire l’SSL Let’s Encrypt nel tuo sistema. Puoi installarlo eseguendo il seguente comando:
apt-get install certbot python3-certbot-nginx -yUna volta installato Certbot, esegui il seguente comando per scaricare e installare l’SSL Let’s Encrypt per il sito web di Gitea.
certbot --nginx -d gitea.linuxbuz.comFornisci il tuo indirizzo email e accetta i termini di servizio come mostrato di seguito:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for gitea.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/gitea
Successivamente, scegli se reindirizzare o meno il traffico HTTP a HTTPS come mostrato di seguito:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Digita 2 e premi Invio per installare il certificato come mostrato di seguito:
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/gitea
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://gitea.linuxbuz.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=gitea.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/gitea.linuxbuz.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/gitea.linuxbuz.com/privkey.pem
Your cert will expire on 2022-11-21. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all*
of your certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Ora, il tuo sito web Gitea è protetto con SSL Let’s Encrypt. Puoi ora procedere al passaggio successivo.
Accedi all’interfaccia web di Gitea
Ora, apri il tuo browser web e digita l’URL https://git.example.com/. Sarai reindirizzato alla seguente pagina:



Fornisci il nome del database Gitea, nome utente, password, percorso del repository, nome utente da eseguire, porta di ascolto, URL di base di Gitea, percorso di log, nome utente admin di Gitea, password e fai clic sul pulsante Installa Gitea. Una volta completata l’installazione, dovresti vedere il dashboard di Gitea nella seguente schermata:

Conclusione
Congratulazioni! hai installato con successo Gitea con Nginx e SSL Let’s Encrypt sul server Ubuntu 22.04. Puoi ora distribuire Gitea nella tua organizzazione e iniziare a creare il tuo primo repository con Gitea. Per ulteriori informazioni, visita la documentazione di Gitea.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.