GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare Gitea Code Hosting Platform con HTTPS su Debian 10

Gitea è un'applicazione web di hosting di codice scritta in Go e biforcuta da Gogs. Come suggerisce il nome, è progettato per essere utilizzato con il popolare programma di controllo del codice sorgente Git, in modo simile a Gitlab e Github. Questa guida spiegherà come installare Gitea su Debian 10 dietro un proxy inverso HTTPS (Nginx).

Requisiti

  • Un sistema Debian 10 su cui hai i privilegi di root.
  • Un nome di dominio registrato che punta al tuo server.
  • La variabile d'ambiente $EDITOR dovrebbe essere impostata.
  • Accesso a un server SMTP per le notifiche e-mail (opzionale).

Assicurati che il tuo (sotto)dominio punti all'indirizzo IPv4 del tuo server con un record A. Facoltativamente, crea un record AAAA che punta all'indirizzo IPv6 del tuo server.

Fase 1:preparazione del sistema

Inizia aggiornando l'indice del tuo pacchetto e installa tutti gli aggiornamenti disponibili:

apt update
apt upgrade -y
reboot

Per questa configurazione sono necessari diversi pacchetti software:

  • Git, una dipendenza di Gitea.
  • PostgreSQL, poiché Gitea richiede un database.
  • Nginx, che verrà utilizzato come proxy inverso.
  • Certbot, un'utilità per ottenere certificati SSL Let's Encrypt.
  • Sudo, per eseguire comandi come utente del sistema postgres.

Installali come segue:

apt install -y git nginx certbot postgresql sudo

Quindi, crea un utente per eseguire Gitea:

adduser --system --disabled-password --group --shell /bin/bash --home /home/gitea gitea

Quindi crea la struttura delle directory per Gitea:

mkdir -p /var/lib/gitea/{data,log} /etc/gitea /run/gitea

E imposta le proprietà e le autorizzazioni come segue:

chown -R gitea:gitea /var/lib/gitea
chown -R gitea:gitea /run/gitea
chown -R root:gitea /etc/gitea
chmod -R 750 /var/lib/gitea
chmod 770 /etc/gitea

I permessi su /etc/gitea sono temporanei e verranno rafforzati dopo l'esecuzione del programma di installazione web.

Fase 2:configurazione del database

Assicurati che Postgres sia abilitato e in esecuzione:

systemctl enable --now [email protected]

Quindi crea un ruolo utente e un database che verranno utilizzati da Gitea:

sudo -u postgres psql
postgres=# CREATE ROLE gitea LOGIN ENCRYPTED PASSWORD 'your_password';
postgres=# CREATE DATABASE gitea;
postgres=# GRANT ALL PRIVILEGES ON DATABASE gitea TO gitea;
postgres=# exit;

Fase 3:installazione di Gitea

Scarica l'ultimo binario linux-amd64 dalla pagina di download di Gitea. Ad esempio:

wget https://dl.gitea.io/gitea/master/gitea-master-linux-amd64 -O /usr/local/bin/gitea
chmod 755 /usr/local/bin/gitea

Quindi, crea un file di unità systemd per Gitea:

$EDITOR /etc/systemd/system/gitea.service

E inserisci quanto segue:

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
Requires=postgresql.service
[Service]
Type=simple
User=gitea
Group=gitea
WorkingDirectory=/var/lib/gitea/
RuntimeDirectory=gitea
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=gitea HOME=/home/gitea GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target

Assicurati che la nuova unità sia caricata:

systemctl daemon-reload

Quindi indica a systemd di avviare Gitea all'avvio del sistema:

systemctl enable gitea.service

Fase 4:configurazione di Gitea

Per la configurazione iniziale, utilizzeremo lo script di installazione Web incluso. Per prima cosa, avvia Gitea:

systemctl start gitea.service

Quindi vai a http://tuo_dominio:3000/install e inserisci i parametri richiesti come segue:

  • Tipo di database:PostgreSQL
  • Ospite:127.0.0.1:5432
  • Nome utente:gitea
  • Password:inserisci la password che hai scelto durante la creazione del ruolo Postgres.
  • Nome database:gitea
  • SSL:Disattiva
  • Titolo del sito:titolo a tua scelta.
  • Percorso radice del repository:/var/lib/gitea/data/repositories
  • Percorso radice Git LFS:/var/lib/gitea/data/lfs
  • Esegui come nome utente:gitea
  • Dominio server SSH:tuo_dominio
  • Porta server SSH:22
  • Post di ascolto HTTP Gitea:3000
  • URL di Gitea Base:https://tuo_dominio/
  • Percorso registro:/var/lib/gitea/log

Configura l'e-mail e le restanti impostazioni come ritenuto opportuno, quindi fai clic su "Installa Gitea". Verrai reindirizzato a un URL errato. Questo è normale, poiché non abbiamo ancora configurato Nginx o HTTPS. Per motivi di prestazioni, configureremo ora Gitea per l'ascolto su un socket unix anziché sulla porta TCP predefinita.

Ferma Gitea prima di procedere:

systemctl stop gitea.service

Aumenta le autorizzazioni su /etc/gitea come mostrato di seguito. Ciò impedisce a chiunque non faccia parte del gruppo gitea di leggere app.ini, che contiene informazioni riservate, comprese le credenziali del database.

chmod 750 /etc/gitea
chown root:gitea /etc/gitea/app.ini
chmod 640 /etc/gitea/app.ini

Apri il suo file di configurazione:

$EDITOR /etc/gitea/app.ini
Remove the following line from the [server] section:
HTTP_PORT = 3000
And add the following lines to the [server] section:
HTTP_ADDR        = /run/gitea/gitea.sock
PROTOCOL         = unix
UNIX_SOCKET_PERMISSION = 666

Fase 5:configurazione del proxy inverso

Stop Nginx if it is running, as certbot will need to bind to port 80:
systemctl stop nginx.service

Utilizza il comando seguente per ottenere un certificato per il tuo dominio:

certbot certonly --standalone --agree-tos -m [email protected] -d your_domain

Let's Encrypt verificherà la proprietà del dominio prima di emettere il certificato. Il tuo certificato, catena e chiave privata verranno archiviati in /etc/letsencrypt/live/tuo_dominio/.

Ora possiamo configurare Nginx. Crea un nuovo file di configurazione:

$EDITOR /etc/nginx/sites-available/gitea

E inserisci la seguente configurazione:

server {
        listen 80;
        listen [::]:80;
        server_name your_domain;
        return 301 https://$server_name$request_uri;
	access_log /var/log/nginx/gitea-proxy_access.log;
	error_log /var/log/nginx/gitea-proxy_error.log;
}
server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name your_domain;
        ssl on;
        ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
        location / {
                proxy_pass http://unix:/var/run/gitea/gitea.sock;
	}
	access_log /var/log/nginx/gitea-proxy_access.log;
	error_log /var/log/nginx/gitea-proxy_error.log;
}

Il primo blocco server serve semplicemente a reindirizzare tutte le richieste HTTP a HTTPS. Il secondo blocco ascolta le connessioni HTTPS e le invia tramite proxy al socket unix su cui abbiamo configurato Gitea per l'ascolto.

Dopo aver salvato la configurazione di cui sopra, esegui quanto segue per abilitarla:

ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled

Verifica la presenza di eventuali errori di sintassi e modifica la configurazione di conseguenza:

nginx -t

Infine, avvia Nginx e Gitea:

systemctl start nginx.service gitea.service

La tua istanza Gitea ora dovrebbe funzionare correttamente. Se non hai creato un account amministratore utilizzando il programma di installazione web iniziale, al primo utente che si iscriverà verrà assegnato il ruolo di amministratore.

Passaggi facoltativi

Configurazione registrazione

Per impostazione predefinita, Gitea registra i messaggi di livello di gravità Info e superiore. Molto probabilmente vorrai cambiarlo in Avvisa o Errore. Per farlo, apri /etc/gitea/app.ini e cambia il parametro LEVEL nella sezione [log] in uno tra:trace, debug, info, warn, error, critical, fatal, nessuno. Ad esempio, per registrare i messaggi di gravità Warn e superiori, utilizzare:

[log]
MODE = file
LEVEL = warn
ROOT_PATH = /var/lib/gitea/log

Riavvia Gitea per rendere effettive le modifiche:

systemctl restart gitea.service

Server SSH separato

Gitea può in alternativa utilizzare il proprio server SSH. Per abilitarlo, aggiungi la seguente riga alla sezione di configurazione [server]:

START_SSH_SERVER = true

E cambia la porta SSH in qualsiasi numero superiore a 1000, ad esempio:

SSH_PORT = 2222

Quindi riavvia Gitea per applicare le modifiche.


Debian
  1. Come installare Steam con Steam Play su Debian 10 Buster

  2. Come installare il codice di Visual Studio su Debian 10

  3. Come installare Gitea Code Hosting Platform con HTTPS su CentOS 8

  4. Come installare Gitea su Debian 9

  5. Come installare WonderCMS con Nginx su Debian 11

Come installare Itch con Debian 11

Come installare Gitea su Debian 10

Come installare il codice di Visual Studio su Debian 11

Come installare phpMyAdmin con Nginx su Debian 11

Come installare Gitea su Debian 11

Come installare Anaconda Python su Debian 10