GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat Gitea Code Hosting Platform s HTTPS na CentOS 8

Gitea je webová aplikace pro hostování kódu napsaná v Go. 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í instalaci Gitea na CentOS 8 s reverzním proxy Nginx HTTPS.

Požadavky

  • Systém CentOS 8, na kterém máte oprávnění root.
  • Název registrované domény odkazující na váš server.
  • Proměnná prostředí $EDITOR by měla být nastavena na váš preferovaný textový 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.

POZNÁMKA: Tato příručka předpokládá, že SELinux je nastaven na vypnutý nebo povolený.

Krok 1:Příprava systému

Začněte instalací všech dostupných aktualizací a restartováním:

aktualizace dnf -yreboot

Pro toto nastavení je vyžadováno několik softwarových komponent:

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

Nainstalujte je následovně:

dnf install -y git postgresql postgresql-server nginx sudo wget

Certbot-auto je skript, který spravuje instalaci certbota. Stáhněte si:

wget https://dl.eff.org/certbot-auto -O /usr/local/bin/certbot-auto

Ujistěte se, že jsou nastavena správná oprávnění:

chmod 0755 /usr/local/bin/certbot-auto

Chcete-li nainstalovat certbot, spusťte následující. Správce balíčků vás vyzve k potvrzení instalace závislostí, odpovězte 'y'.

certbot-auto --install-only

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

useradd --system --shell /bin/bash --create-home --home-dir /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/giteachown -R gitea:gitea /var/run/giteachown -R root:gitea /etc/giteachmod -R 750 /var/lib/giteachmod 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.

Trvale povolit provoz na portech 80 a 443:

firewall-cmd --add-port 80/tcp --add-port 443/tcp --permanentfirewall-cmd --reload

Přístup k portu 3000 je vyžadován pouze dočasně pro počáteční nastavení, protože gitea nakonfigurujeme tak, aby místo toho používala Unixový soket.

firewall-cmd --add-port 3000/tcp

Krok 2:Nastavení databáze

Inicializujte Postgres:

postgresql-setup --initdb --unit postgresql

Ujistěte se, že je povoleno a spuštěno:

systemctl enable --now postgresql.service

Přihlaste se do Postgres:

sudo -u postgres psql

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

postgres=# VYTVOŘIT ROLE gitea PŘIHLÁŠENÍ ŠIFROVANÉ HESLO 'your_password';postgres=# VYTVOŘIT DATABÁZI gitea;postgres=# UDĚLEJTE VŠECHNA OPRÁVNĚNÍ V DATABÁZI gitea GITEA;postgres=# \q

Otevřete konfigurační soubor ověřování klienta Postgres:

$EDITOR /var/lib/pgsql/data/pg_hba.conf

Přidejte následující řádek hned za # Místní připojení IPv4:

# místní připojení IPv4:hostitel gitea gitea 127.0.0.1/32 md5

Uložte soubor a restartujte Postgres:

systemctl restart postgresql.service

Krok 3:Instalace Gitea

Stáhněte si binární verzi Gitea pro 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

Nastavte správná oprávnění ke staženému binárnímu souboru:

chmod 755 /usr/local/bin/gitea

Dále vytvořte soubor systemd unit:

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

A zadejte následující:

[Unit]Description=Gitea (Git s šálkem čaje)After=syslog.targetAfter=network.targetRequires=postgresql.service[Service]Type=simpleUser=giteaGroup=giteaWorkingDirectory=/var/lib/gitea/RuntimeDirectory=giteaExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.iniRestart=alwaysEnvironment=USER=gitea HOME=/home/gitea GITEA_WORK_DIR=/var/lib/gitea[Install]WantedBy=multi-user. cíl

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

systemctl daemon-reload

Poté dejte systemd pokyn, aby spustil Gitea při bootování:

systemctl povolit gitea.service

Krok 4:Konfigurace Gitea

Pro počáteční konfiguraci použijeme přiložený webový instalátor. 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/giteachown root:gitea /etc/gitea/app.inichmod 640 /etc/gitea/app.ini

Otevřete jeho konfigurační soubor:

$EDITOR /etc/gitea/app.ini

Odeberte následující řádek ze sekce serveru:

HTTP_PORT =3000

A přidejte následující řádky do sekce server:

HTTP_ADDR =/run/gitea/gitea.sockPROTOCOL =unixUNIX_SOCKET_PERMISSION =666

Krok 5:Reverzní nastavení proxy

Zastavte Nginx, pokud běží, aby certbot mohl naslouchat na portu 80:

systemctl stop nginx.service

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

certbot-auto certonly --standalone --agree-tos -m [e-mail 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/conf.d/gitea.conf

A zadejte následující bloky serveru:

server { poslouchat 80; poslouchej [::]:80; název_serveru vaše_doména; 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; poslouchej [::]:443 ssl; název_serveru vaše_doména; ssl zapnuto; ssl_certificate /etc/letsencrypt/live/vaše_doména/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/vaše_doména/privkey.pem; umístění / { 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.

Po uložení výše uvedené konfigurace zkontrolujte případné syntaktické chyby a v případě potřeby konfiguraci upravte:

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. Přistupte k němu na https://vaše_doména

Volitelné kroky

Konfigurace protokolování

Ve výchozím nastavení protokoluje Gitea 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 =fileLEVEL =warningROOT_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 1024, například:

SSH_PORT =2222

Poté restartujte Gitea, abyste použili změny a povolili provoz na zvoleném portu:

firewall-cmd --add-port 2222/tcp --permanentfirewall-cmd --reload

Cent OS
  1. Jak nainstalovat CentOS 8 (se snímky obrazovky)

  2. Jak nainstalovat Python 3 na CentOS 7 s SCL

  3. Jak nainstalovat Gitea Code Hosting Platform s HTTPS na Debian 10

  1. Jak nainstalovat Gitea na CentOS 8

  2. Jak nainstalovat phpMyAdmin s Nginx na CentOS 7

  3. Jak nainstalovat kód Visual Studio na CentOS 7

  1. Jak nainstalovat kód Visual Studio na CentOS 8

  2. Jak nainstalovat Graylog s Elasticsearch na CentOS 8

  3. Jak nastavit Apache Subversion s HTTPS Letsencrypt na CentOS 7