GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat Gitea Code Hosting Platform s HTTPS na Debian 10

Gitea je webová aplikace pro hostování kódu napsaná v Go a rozvětvená z Gogs. Jak jeho název napovídá, je navržen pro použití s ​​populárním programem pro ovládání zdrojů Git, podobně jako Gitlab a Github. Tato příručka vysvětlí, jak nainstalovat Gitea na Debian 10 za HTTPS reverzní proxy (Nginx).

Požadavky

  • Systém Debian 10, na kterém máte oprávnění root.
  • Název registrované domény odkazující na váš server.
  • Měla by být nastavena proměnná prostředí $EDITOR.
  • Přístup k serveru SMTP pro e-mailová upozornění (volitelné).

Ujistěte se, že vaše (sub)doména ukazuje na IPv4 adresu vašeho serveru se záznamem A. Volitelně vytvořte záznam AAAA směřující na adresu IPv6 vašeho serveru.

Krok 1:Příprava systému

Začněte aktualizací indexu balíčků a nainstalujte všechny dostupné aktualizace:

apt update
apt upgrade -y
reboot

Pro toto nastavení je vyžadováno několik softwarových balíčků:

  • Git, závislý na Gitea.
  • PostgreSQL, protože Gitea vyžaduje databázi.
  • Nginx, který bude použit jako reverzní proxy.
  • Certbot, nástroj pro získávání certifikátů Let's Encrypt SSL.
  • Sudo, chcete-li spouštět příkazy jako uživatel systému postgres.

Nainstalujte je následovně:

apt install -y git nginx certbot postgresql sudo

Dále vytvořte uživatele pro spuštění Gitea:

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

Poté vytvořte adresářovou strukturu pro Gitea:

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

A nastavte vlastnictví a oprávnění následovně:

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

Oprávnění v /etc/gitea jsou dočasná a budou zpřísněna po spuštění webového instalačního programu.

Krok 2:Nastavení databáze

Ujistěte se, že je Postgres povolen a spuštěn:

systemctl enable --now [email protected]

Poté vytvořte uživatelskou roli a databázi, kterou bude Gitea používat:

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;

Krok 3:Instalace Gitea

Stáhněte si nejnovější binární soubor linux-amd64 ze stránky pro stahování Gitea. Například:

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

Dále vytvořte soubor systemd unit pro Gitea:

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

A zadejte následující:

[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

Ujistěte se, že je zavedena nová jednotka:

systemctl daemon-reload

Poté požádejte systemd, aby spustil Gitea při startu systému:

systemctl enable gitea.service

Krok 4:Konfigurace Gitea

Pro počáteční konfiguraci použijeme přiložený webový instalační skript. Nejprve spusťte Gitea:

systemctl start gitea.service

Poté přejděte na http://vaše_doména:3000/install a vyplňte požadované parametry takto:

  • Typ databáze:PostgreSQL
  • Hostitel:127.0.0.1:5432
  • Uživatelské jméno:gitea
  • Heslo:Zadejte heslo, které jste zvolili při vytváření role Postgres.
  • Název databáze:gitea
  • SSL:Zakázat
  • Název webu:Název dle vašeho výběru.
  • Kořenová cesta úložiště:/var/lib/gitea/data/repositories
  • Kořenová cesta Git LFS:/var/lib/gitea/data/lfs
  • Spustit jako uživatelské jméno:gitea
  • Doména serveru SSH:vaše_doména
  • Port serveru SSH:22
  • Gitea HTTP Listen Post:3000
  • Základní adresa URL Gitea:https://vaše_doména/
  • Cesta protokolu:/var/lib/gitea/log

Nakonfigurujte e-mail a zbývající nastavení, jak uznáte za vhodné, a poté klikněte na „Instalovat Gitea“. Budete přesměrováni na chybnou adresu URL. To je normální, protože jsme ještě nenakonfigurovali Nginx ani HTTPS. Z důvodů výkonu nyní nakonfigurujeme Gitea tak, aby naslouchala na unixovém soketu namísto výchozího TCP portu.

Než budete pokračovat, zastavte Gitea:

systemctl stop gitea.service

Utáhněte oprávnění v /etc/gitea, jak je uvedeno níže. To zabrání komukoli, kdo není ve skupině gitea, číst soubor app.ini, který obsahuje citlivé informace, včetně přihlašovacích údajů k databázi.

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

Otevřete jeho konfigurační soubor:

$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

Krok 5:Nastavení zpětného proxy

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

K získání certifikátu pro vaši doménu použijte následující příkaz:

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

Let's Encrypt ověří vlastnictví domény před vydáním certifikátu. Váš certifikát, řetězec a soukromý klíč budou uloženy v /etc/letsencrypt/live/vaše_doména/.

Nyní můžeme nakonfigurovat Nginx. Vytvořte nový konfigurační soubor:

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

A zadejte následující konfiguraci:

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;
}

První blok serveru jednoduše slouží k přesměrování všech HTTP požadavků na HTTPS. Druhý blok naslouchá připojení HTTPS a posílá je proxy do unixového soketu, na kterém jsme nakonfigurovali Gitea tak, aby naslouchal.

Jakmile uložíte výše uvedenou konfiguraci, povolte ji spuštěním následujícího:

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

Zkontrolujte případné syntaktické chyby pomocí a podle toho upravte konfiguraci:

nginx -t

Nakonec spusťte Nginx a Gitea:

systemctl start nginx.service gitea.service

Vaše instance Gitea by nyní měla úspěšně fungovat. Pokud jste nevytvořili účet správce pomocí počátečního webového instalačního programu, bude prvnímu uživateli, který se zaregistruje, přidělena role správce.

Volitelné kroky

Konfigurace protokolování

Ve výchozím nastavení Gitea protokoluje zprávy na úrovni závažnosti Info a vyšší. Pravděpodobně to budete chtít změnit na Varovat nebo Chyba. Chcete-li tak učinit, otevřete /etc/gitea/app.ini a změňte parametr LEVEL v sekci [log] na jeden z:trace, debug, info, warning, error, kritický, fatální, none. Chcete-li například protokolovat zprávy se závažností Varování a vyšší, použijte:

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

Restartujte Gitea, aby se změny projevily:

systemctl restart gitea.service

Samostatný server SSH

Gitea může alternativně používat svůj vlastní SSH server. Chcete-li to povolit, přidejte do sekce konfigurace [server] následující řádek:

START_SSH_SERVER = true

A změňte port SSH na libovolné číslo nad 1000, například:

SSH_PORT = 2222

Poté restartujte Gitea, aby se změny projevily.


Debian
  1. Jak nainstalovat Gitea Code Hosting Platform s HTTPS na CentOS 8

  2. Jak nainstalovat Gitea na Debian 9

  3. Jak nainstalovat WonderCMS s Nginx na Debian 11

  1. Jak nainstalovat Steam pomocí Steam Play na Debian 10 Buster

  2. Jak nainstalovat kód Visual Studio na Debian 10

  3. Jak nainstalovat kód Visual Studio na Debian 9

  1. Jak nainstalovat Rundeck na server Debian 8 (Jessie).

  2. Jak nainstalovat WonderCMS s Nginx na Debian 9

  3. Jak nainstalovat Gitea s PostgreSQL na Debian 11