GNU/Linux >> Znalost Linux >  >> Fedora

Jak nainstalovat službu Gitea Code Hosting na Fedora 34

Gitea je open-source řešení pro hostování kódu založené na platformě Git. Je napsán v jazyce Go. Zahrnuje editor souborů úložiště, sledování problémů, žádosti o stažení, správu uživatelů, upozornění, vestavěnou wiki, podporu LFS, háky Git a mnoho dalšího.

Jedná se o lehkou aplikaci. Proto může být instalován na systémech s nízkým výkonem. Pokud hledáte platformu Git s vlastním hostitelem s menší paměťovou platformou, měli byste se podívat na Gitea.

Tento článek se bude zabývat tím, jak nainstalovat a nakonfigurovat Gitea na Fedoře 34 a jak nastavit své první úložiště Git. Gitea lze nainstalovat ze zdrojového, binárního, dockerového balíčku nebo balíčku. Pro náš tutoriál jej nainstalujeme z binárního kódu.

Předpoklady

  • Server se systémem Fedora 34.
  • Uživatel sudo bez oprávnění root.
  • SELinux zakázán.
  • Ujistěte se, že je vše aktualizováno.

    $ sudo dnf update
    

Krok 1 – Konfigurace brány firewall

Prvním krokem je konfigurace firewallu. Server Fedora je dodáván s Firewallem firewall.

Zkontrolujte, zda je spuštěna brána firewall.

$ sudo firewall-cmd --state

Měli byste získat následující výstup.

running

Zkontrolujte aktuální povolené služby/porty.

$ sudo firewall-cmd --permanent --list-services

Měl by ukazovat následující výstup.

dhcpv6-client mdns ssh

Povolit porty HTTP a HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Znovu zkontrolujte stav brány firewall.

$ sudo firewall-cmd --permanent --list-services

Měli byste vidět podobný výstup.

dhcpv6-client http https mdns ssh

Znovu načtěte bránu firewall.

$ sudo systemctl reload firewalld

Krok 2 – Instalace Git

Prvním krokem je instalace Git.

$ sudo dnf install git

Ověřte instalaci kontrolou verze Git.

$ git --version
git version 2.31.1

Konfigurovat Git

Git lze nakonfigurovat pomocí git config příkaz. Nastavte své jméno a e-mailovou adresu pro práci s Git.

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

Konfiguraci můžete zkontrolovat pomocí následujícího příkazu.

$ git config --list
user.name=Your Name
[email protected]

Krok 3 – Instalace a konfigurace PostgreSQL

Gitea podporuje SQLite, MySQL/Mariadb, MSSQL a PostgreSQL. Pro náš tutoriál použijeme PostgreSQL.

Nainstalujte a inicializujte PostgreSQL.

$ sudo dnf module enable postgresql:13
$ sudo dnf install postgresql-server postgresql-contrib
$ sudo postgresql-setup --initdb --unit postgresql
$ sudo systemctl enable --now postgresql

PostgreSQL standardně používá šifrovací schéma md5 pro ověřování hesla, což není bezpečné. Musíte přejít na SCRAM-SHA-256 systém. A pokud se chystáte připojit ke vzdálené databázi PostgreSQL, musíte ji nakonfigurovat tak, aby naslouchala vaší IP adrese. Obojí lze změnit úpravou /var/lib/pgsql/data/postgresql.conf soubor. Otevřete jej pro úpravy.

$ sudo nano /var/lib/pgsql/data/postgresql.conf

Následující proměnné upravte následujícím způsobem.

listen_addresses = 'localhost, 201.0.110.0'
password_encryption = scram-sha-256

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Restartujte PostgreSQL.

$ sudo systemctl restart postgresql

Přihlaste se do prostředí PostgreSQL.

$ sudo -u postgres psql

Vytvořte nového uživatele SQL a databázi pro Gitea. Zvolte silné heslo pro uživatele vaší databáze.

postgres-# CREATE ROLE gitea WITH LOGIN PASSWORD 'yourpassword';
postgres-# CREATE DATABASE giteadb WITH OWNER gitea TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';

Podle potřeby nahraďte uživatelské jméno, název databáze a heslo.

Opusťte shell zadáním \q .

Umožněte uživateli databáze přístup k databázi vytvořené výše přidáním následujícího ověřovacího pravidla do /var/lib/pgsql/data/pg_hba.conf .

Pokud je databáze lokální, přidejte tento řádek.

local    giteadb    gitea    scram-sha-256

Pro vzdálenou databázi použijte místo toho následující kód.

host    giteadb    gitea    192.0.2.10/32    scram-sha-256

Budete také muset upravit následující řádky přidáním nahrazení ident s scram-sha-256 .

# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

Měly by vypadat následovně.

# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Restartujte PostgreSQL.

$ sudo systemctl restart postgresql

Pokud chcete povolit vzdálená připojení, budete také muset přidat následující pravidlo do brány firewall.

$ sudo firewall-cmd --permanent--add-service=postgresql
$ sudo firewall-cmd --reload

Krok 4 – Vytvoření uživatele Git

Vytvořte nového uživatele systému pro spuštění aplikace Gitea.

$ sudo useradd \
   --system \
   --shell /bin/bash \
   --comment 'Git Version Control' \
   --create-home \
   --home /home/git \
   git

Tento příkaz vytvoří nového uživatele a skupinu s názvem git a nastaví domovský adresář na /home/git .

Krok 5 – Instalace Gitea

Otevřete stránku Gitea Downloads a zkontrolujte číslo verze nejnovější dostupné binární verze. V době psaní tohoto návodu je nejnovější verze 1.14.3. Pokud existuje novější verze, změňte ji v VERSION proměnnou v příkazu níže.

Použijte wget nástroj pro získání nejnovější binárky Gitea.

$ GITEAVERSION=1.14.3
$ wget -O gitea https://dl.gitea.io/gitea/${GITEAVERSION}/gitea-${GITEAVERSION}-linux-amd64

Přesuňte stažený binární soubor do /usr/local/bin adresář.

$ sudo mv gitea /usr/local/bin

Vytvořte binární spustitelný soubor.

$ sudo chmod +x /usr/local/bin/gitea

Spuštěním následujících příkazů vytvořte adresáře a nastavte požadovaná oprávnění, aby Gitea správně fungovala.

$ sudo mkdir -p /var/lib/gitea/{custom,data,log}
$ sudo chown -R git:git /var/lib/gitea/
$ sudo chmod -R 750 /var/lib/gitea/
$ sudo mkdir /etc/gitea
$ sudo chown root:git /etc/gitea
$ sudo chmod 770 /etc/gitea

Oprávnění pro /etc/gitea adresář je nastaven na 770, aby průvodce instalací vytvořil konfigurační soubor. Po dokončení instalace nastavíme přísnější oprávnění.

Vytvoření souboru služby Systemd

Gitea budeme provozovat jako systémovou službu. Za tímto účelem vytvořte nový vstupní soubor systemd pro Gitea.

$ sudo nano /etc/systemd/system/gitea.service

Vložte do něj následující kód.

[Unit]
Description=Gitea
After=syslog.target
After=network.target
After=postgresql.service

[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/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

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Pro referenci se můžete podívat na ukázkový soubor systemd dostupný z úložiště Gitea.

Znovu načtěte démona systemd, abyste povolili soubor, který jsme právě vytvořili.

$ sudo systemctl daemon-reload

Povolte a spusťte službu Gitea.

$ sudo systemctl enable --now gitea

Ověřte, že Gitea běží.

$ sudo systemctl status gitea
  gitea.service - Gitea
     Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: disabled)
     Active: active (running) since Tue 2021-07-04 20:33:38 EDT; 1 day 8h ago
   Main PID: 46404 (gitea)
      Tasks: 7 (limit: 2328)
     Memory: 115.5M
CPU: 9min 12.061s CGroup: /system.slice/gitea.service ---46404 /usr/local/bin/gitea web -c /etc/gitea/app.ini ...

Krok 6 – Konfigurace Gitea

Gitea standardně naslouchá na portu 3000. Můžete použít buď jiný port, nebo se držet výchozího portu. Proto musíme také otevřít port 3000.

$ sudo firewall-cmd --permanent --add-port=3000/tcp
$ sudo firewall-cmd --reload

Otevřete prohlížeč a zadejte https://YOURIPADDRESS:3000 a budete uvítáni instalačním programem Gitea. Ke konfiguraci použijte následující hodnoty.

Nastavení databáze

  • Typ databáze: Z rozevírací nabídky vyberte PostgreSQL
  • Hostitel: 127.0.0.1:5432
  • Uživatelské jméno: gitea
  • Heslo: vaše heslo
  • Název databáze: gitea

Obecná nastavení

  • Název webu: Zadejte název vaší organizace
  • Kořenová cesta úložiště: Ponechte výchozí cestu
  • Git kořenová cesta LFS: Ponechte výchozí cestu
  • Spustit jako uživatelské jméno: git
  • Doména serveru SSH: Zadejte svou IP adresu
  • Port pro poslech HTTP: 3000 (Zde můžete změnit port, ale budete k němu muset přistupovat přes bránu firewall.)
  • Základní adresa URL Gitea: http://VAŠEIPADRESA:3000
  • Cesta protokolu: Ponechte výchozí

V tomto okamžiku můžete nakonfigurovat nastavení e-mailu a serveru nebo je můžete změnit později. Měli byste však vyplnit nastavení účtu správce.

Chcete-li zahájit instalaci, klikněte na tlačítko Instalovat Gitea* knoflík. Po dokončení budete automaticky přihlášeni a přesměrováni na hlavní panel účtu.

Instalace vytvoří konfigurační soubor Gitea. Změňte jeho oprávnění na pouze pro čtení.

$ sudo chmod 750 /etc/gitea
$ sudo chmod 640 /etc/gitea/app.ini

A je to. Gitea je nyní nainstalována na vašem serveru.

Krok 7 – Instalace SSL pomocí Let's Encrypt

Chcete-li nainstalovat certifikát SSL pomocí Let's Encrypt, musíme si stáhnout nástroj Certbot pomocí instalačního programu balíčku Snapd, který je součástí Ubuntu 20.04.

Spuštěním následujících příkazů nainstalujte Certbot.

$ sudo dnf install certbot

Vygenerujte certifikát SSL.

$ sudo certbot certonly --standalone --preferred-challenges http -d example.com

Výše uvedený příkaz stáhne certifikát do /etc/letsencrypt/live/example.com adresář na vašem serveru.

Vytvořte adresář webroot s výzvou pro automatické obnovení Let's Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Vytvořte úlohu Cron pro obnovení SSL. Poběží každý den, aby se zkontroloval certifikát a v případě potřeby se obnoví. Nejprve vytvořte soubor /etc/cron.daily/certbot-renew a otevřete jej pro úpravy.

$ sudo nano /etc/cron.daily/certbot-renew

Vložte následující kód.

#!/bin/sh
certbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Změňte oprávnění k souboru úlohy, aby byl spustitelný.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Krok 8 – Instalace a konfigurace Nginx

Dalším krokem je instalace serveru Nginx.

$ sudo dnf install nginx

Vytvořte konfigurační soubor Nginx pro Gitea.

$ sudo nano /etc/nginx/conf.d/gitea.conf

Vložte do něj následující kód.

server {
        listen 80;
    
        location ~ /\.well-known/acme-challenge {
                root /var/lib/letsencrypt/;
        }
    
        server_name yourdomain.com;
        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl http2;
        server_name your_domain;
    
        client_max_body_size 50m;
    
        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
        ssl_session_tickets off;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20- POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
        ssl_prefer_server_ciphers off;
        ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
        ssl_stapling on;
        ssl_stapling_verify on;

        ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/yourdomain.com/chain.pem;
    
        proxy_read_timeout 720s;
        proxy_connect_timeout 720s;
        proxy_send_timeout 720s;
        
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
    
        location / {
                proxy_redirect off;
                proxy_pass http://127.0.0.1:3000;
     	}
        access_log /var/log/nginx/gitea.access.log;
        error_log /var/log/nginx/gitea.error.log;
}

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Ověřte, zda konfigurační soubor funguje správně.

$ sudo nginx -t

Restartujte server Nginx.

$ sudo systemctl restart nginx

Dále změňte doménu Gitea a kořenovou adresu URL. Chcete-li to provést, otevřete konfigurační soubor /etc/gitea/app.ini .

$ sudo nano /etc/gitea/app.ini

Změňte následující hodnoty.

[server]
SSH_DOMAIN       = git.example.com
DOMAIN           = git.example.com
ROOT_URL         = https://git.example.com/

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Restartujte službu Gitea.

$ sudo systemctl restart gitea

Krok 9 – Nastavení e-mailových upozornění

Pokud chcete dostávat e-mailová upozornění, můžete je povolit buď prostřednictvím Sendmailu, nebo prostřednictvím e-mailové transakční služby třetí strany, jako je Amazon SES, Postmark, Mailgun nebo Sendgrid.

Chcete-li povolit upozornění, otevřete konfigurační soubor /etc/gitea/app.ini .

$ sudo nano /etc/gitea/app.ini

Upravte následující oddíl v souboru a přidejte následující kód.

[mailer]
ENABLED = true
FROM           = [email protected]
MAILER_TYPE    = smtp
HOST           = mail.mydomain.com:587
IS_TLS_ENABLED = true
USER           = [email protected]
PASSWD         = `password`

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Restartujte službu Gitea.

$ sudo systemctl restart gitea

Krok 10 – Aktualizace Gitea

Upgrade Gitea zahrnuje stažení a nahrazení binárky Gitea.

Nejprve zastavte službu Gitea.

$ sudo systemctl stop gitea

Stáhněte a nainstalujte binární Gitea.

$ GITEAVERSION=LATESTVERSION
$ wget -O gitea https://dl.gitea.io/gitea/${GITEAVERSION}/gitea-${GITEAVERSION}-linux-amd64
$ sudo mv gitea /usr/local/bin
$ sudo chmod +x /usr/local/bin/gitea

Restartujte službu Gitea.

$ sudo systemctl start gitea

Krok 11 – Jak používat SSH

Abychom mohli používat SSH, musíme do Gitea přidat vlastní klíč SSH. Pokud jej nemáte, můžete si jej vytvořit pomocí následujícího příkazu ve vašem místním systému.

$ ssh-keygen -N "yourpassphrase" -t ed25519 -C "gitea_key"

Tím se vytvoří klíč s názvem id_ed25519 v ~/.ssh adresář. Chcete-li přidat tento klíč, zkopírujte obsah souboru ~/.ssh/id_ed25519.pub do vaší schránky. Poté přidejte tento klíč na stránku nastavení Gitea na kartě Klíče SSH/GPG . Klikněte na Přidat klíč a zadejte název klíče a vložte jej do pole.

Pokud máte v konfiguračním souboru sshd seznam povolených uživatelů, musíte přidat git k tomu.

Otevřete konfigurační soubor SSHD.

$ sudo nano /etc/ssh/sshd_config

Hledejte řádek, který by měl vypadat takto.

AllowUsers myuser myotheruser git

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Restartujte službu SSHD.

$ sudo systemctl restart ssh

Do ssh-agent musíte přidat přístupovou frázi pro klíč, který jsme vytvořili nástroj ve vašem místním systému, abyste o něj nebyli opakovaně požádáni. Chcete-li to provést, spusťte následující příkazy.

$ eval $(ssh-agent)
Agent pid 46436
$ ssh-add ~/.ssh/id_ed25519

Můžete klonovat své úložiště a otestovat připojení SSH.

$ git clone ssh://[email protected]/username/repo.git
Cloning into 'repo'...
The authenticity of host 'example.com (201.110.80.160)' can't be established.
ECDSA key fingerprint is SHA256:Kx9l19zpGhHfbb2wHtmWeC7/WWv8e5/T3Tcws2qwVEw.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'example.com,201.110.80.160' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (5/5), 4.77 KiB | 977.00 KiB/s, done.

Závěr

Tímto končí výukový program o instalaci a konfiguraci služby hostování kódu Gitea na Fedoře 34. Pokud máte nějaké dotazy, napište je do komentářů níže.


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

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

  3. Jak nainstalovat Node.js na Fedora 35 / Fedora 34

  1. Jak nainstalovat Gitea Self-hosted Git Service pomocí Dockeru na Ubuntu 18.04

  2. Jak nainstalovat Vagrant na Fedoru 34

  3. Jak nainstalovat a nakonfigurovat Redis 6 na Fedoře 34

  1. Jak nainstalovat službu Gitea Git na Debian 11

  2. Jak nainstalovat OpenOffice 4.1.10 na Fedoru 34

  3. Jak nainstalovat AnyDesk na Fedora 35 / Fedora 34