Gitea met PostgreSQL installeren op Debian 11

Gitea is een gratis, open-source, en zelf gehoste oplossing voor Git servers. Gitea is geschreven in de Go programmeertaal, een lichtgewicht toepassing, beschikbaar als binair pakket dat op de meeste platforms geïnstalleerd kan worden, waaronder Windows, Linux, en macOS. Het is een van de robuuste, schaalbare, snelle, gemakkelijk te gebruiken en alternatieven voor GitLab.

Gitea biedt veel mogelijkheden, waaronder een repository bestandseditor, bug en tijd bijhouden, repository branching, bestanden vergrendelen, ingebouwde wiki, samenvoegen, Ondersteuning voor meerdere databases, Eenvoudig upgrade proces, Ingebouwd Container Register, en nog veel meer.

In deze zelfstudie laat ik je zien hoe je Gitea vanaf binair met PostgreSQL op Debian 11 kunt installeren.

Vereisten

  • Een server waarop Debian 11 draait.
  • Een root wachtwoord is op de server ingesteld.

Stap 1 – Update OS

Voordat je de installatie van Gitea start, voer je het onderstaande commando uit om je systeem met de nieuwste versie bij te werken.

sudo apt-get update -y

sudo apt-get upgrade -y

Stap 2 – Installeer en configureer PostgreSQL

Gitea ondersteunt alle grote databases zoals MySQL, MariaDB, SQLite en PostgreSQL, maar in deze gids wordt PostgreSQL gebruikt als Gitea database.

Maak eerst een PostgreSQL Repository aan met het volgende commando:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Vervolgens moet je de signeer-sleutel van de repository importeren:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Installeer nu PostgreSQL met de volgende commando’s:

sudo apt-get update

sudo apt-get -y install postgresql

Start vervolgens de PostgreSQL dienst, schakel hem in bij het opstarten van het systeem, en controleer de status van de PostgreSQL dienst met het volgende commando:

sudo systemctl start postgresql

sudo systemctl enable postgresql

sudo systemctl status postgresql

Installeer PostgreSQL

Vervolgens moet je overschakelen van md5 versleutelingsschema naar ‘SCRAM-SHA-256’ schema voor betere beveiliging. Als je op afstand verbinding wilt maken met PostgreSQL, dan moet je je IP adres toestaan in het PostgreSQL configuratiebestand. Open het configuratiebestand om wijzigingen aan te brengen met het volgende commando:

sudo vim /etc/postgresql/14/main/postgresql.conf

Als je een andere PostgreSQL versie geïnstalleerd hebt, verander dan het bovenstaande commandopad in overeenstemming daarmee.

Verander vervolgens de volgende variabelen volgens je behoefte:

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

Sla het bestand op en sluit het af, en herstart de PostgreSQL dienst om de veranderingen toe te passen.

sudo systemctl restart postgresql

Log vervolgens in op de PostgreSQL shell met het volgende commando:

sudo -u postgres psql

Maak dan een gebruikersrol en een database voor Gitea door het volgende commando uit te voeren:

postgres=# CREATE ROLE gitea WITH LOGIN PASSWORD '[email protected]';

postgres=# CREATE DATABASE giteadb;

postgres=# GRANT ALL PRIVILEGES ON DATABASE giteadb TO gitea;

postgres=# exit

Hier moet je gebruikersnaam, databasenaam, en je wachtwoord voor Gitea instellen.

Creëer rol in postgres

Op dit punt is je PostgreSQL setup en klaar voor Gitea, controleer de authenticatie instellingen in het bestand /etc/postgresql/14/main/pg_hba.conf.

PostgreSQL accepteert standaard alle lokale verbindingen.

host    all             all             127.0.0.1/32            scram-sha-256

Als je giteadb op afstand wilt gebruiken, voeg dan de volgende regel met je IP adres toe in /etc/postgresql/14/main/pg_hba.conf

host    giteadb        gitea            134.122.38.0/32           scram-sha-256 

Configureer host

Stap 3 – Git installeren en instellen

Installeer vervolgens git met het volgende commando:

sudo apt install git

Verifieer de git installatie door de Git versie te controleren:

git --version

Uitvoer:-

git version 2.30.2

Vervolgens moet je je naam en e-mail adres instellen voor Git.

git config --global user.name "Your Name"

git config --global user.email "[email protected]

Je kunt je Git configuratie controleren met het volgende commando.

git config --list

Uitvoer:-

user.name=Your Name
[email protected]

Stap 4 – Maak een git gebruiker voor Gitea

Nu moet je een Gitea gebruiker aanmaken. Je kunt dit doen met het volgende commando:

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos 'Git Version Control' \
   --group \
   --disabled-password \
   --home /home/git \
   git

Dit maakt een nieuwe gebruiker git aan.

Stap 5 – Installeer en configureer Gitea

Ga naar de Gitea Download Pagina en download de nieuwste beschikbare versie van de Gitea binary. Op het moment van schrijven van deze handleiding is de nieuwste versie van Gitea 1.15.7. Je kunt de VERSIE variabele in het onderstaande commando veranderen om een andere versie te installeren.

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

Verplaats vervolgens de Gitea binary naar het systeempad met het volgende commando:

sudo mv /tmp/gitea /usr/local/bin

Zet vervolgens uitvoerbare toestemming op het Gitea binaire bestand door het volgende commando in de terminal uit te voeren:

chmod +x /usr/local/bin/gitea

Vervolgens moet je een mappenstructuur voor Gitea maken, voer daartoe de volgende commando’s uit:

sudo mkdir -p /etc/gitea

sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}

Geef vervolgens de vereiste toestemmingen om Gitea goed te laten werken met de volgende commando’s:

sudo chown -R git:git /var/lib/gitea/

sudo chown root:git /etc/gitea

sudo chmod -R 750 /var/lib/gitea/

sudo chmod 770 /etc/gitea

Maak vervolgens een systemd service bestand voor Gitea met het volgende commando:

vim /etc/systemd/system/gitea.service

Plak er de volgende code in.

[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

Bewaar het bestand en sluit het af. Herlaad dan systemd daemon en start de Gitea service met het onderstaande commando:

sudo systemctl daemon-reload
sudo systemctl start gitea

Vervolgens moet je Gitea service inschakelen bij het herstarten van het systeem:

sudo systemctl enable gitea

Controleer vervolgens de status van Gitea met het volgende commando:

sudo systemctl status gitea

Je zou de volgende uitvoer moeten zien:

Controleer de status van Gitea

Zoals je ziet, is Gitea standaard gestart en draait op poort 3000. Je kunt de poort van Gitea verifiëren met het volgende commando:

netstat -tulpan | grep 3000

Je zou uitvoer als hieronder moeten zien:

tcp6       0      0 :::3000                 :::*                    LISTEN      43778/gitea

Stap 6 – Open de Gitea Web Interface

Gitea is nu opgestart en luistert standaard op poort 3000. Open je browser en typ https://YOURIPADDRESS:3000.

Vul vervolgens de vereiste parameters als volgt in:

Database instellingen

Databasetype: PostgreSQL
Host: 127.0.0.1:5432
Gebruikersnaam: gitea
Wachtwoord: Vul het wachtwoord in dat je koos tijdens het aanmaken van de Postgres rol.
Databasenaam: giteadb
SSL: Uitschakelen

Gitea databank configuratie

Algemene instellingen


Site Titel: Titel naar keuze.
Repository Root Path: /var/lib/gitea/data/repositories
Git LFS Root Path: /var/lib/gitea/data/lfs
Run As Gebruikersnaam: git
SSH Server Domein: je_domein/IP
SSH Server Poort: 22
Gitea HTTP Luister Post: 3000
Gitea Basis URL: http://YOURIPADDRESS:3000
Log Pad: /var/lib/gitea/log

Gitea algemene instellingen

In dit stadium kun je je e-mail en Server en Derden instellingen configureren, of je kunt dat later doen. Je moet echter de Beheerder instellen

gebruikersnaam om in te loggen op Gitea. Ga daarom naar Optionele Instelling en geef de gegevens voor Administrator Account Instelling op en maak ‘Beheerder gebruiker’ aan voor Gitea.

Gitea Optionele Instellingen

Klik vervolgens op de knop ‘Install Gitea’. Als de installatie met succes voltooid is, word je omgeleid naar het Gitea dashboard dat op de volgende pagina te zien is:

Gitea Dashboard

Nu kun je Gitea verkennen en vanuit de optie Sitebeheer van je beheerdersaccount andere diensten van derden instellen, zoals het integreren van venster’s actieve map met Gitea.

Gitea Samenvatting

Stap 7 – E-mail meldingen instellen

Je kunt E-mail meldingen in Gitea inschakelen met Sendmail of via een 3e partij E-mail dienst zoals Amazon SES, Sendgrid.

Om E-mail Notificaties in te schakelen, open je het Gitea configuratiebestand met het volgende commando:

vim /etc/gitea/app.in

Bewerk vervolgens de volgende sectie in het bestand en voeg de volgende code toe volgens je e-mail instellingen.

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

Sla het bestand op en sluit het af, en herstart de Gitea dienst om de veranderingen toe te passen:

sudo systemctl restart gitea

Stap 10 – Gitea bijwerken

Gitea bijwerken is een moeiteloos proces, en je hoeft alleen maar de Gitea binary te downloaden en te vervangen.

Stop eerst de Gitea dienst:

sudo systemctl stop gitea

Download en installeer vervolgens de Gitea binary met het volgende commando:

cd /tmp
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

Start vervolgens de Gitea dienst met het volgende commando:

sudo systemctl start gitea

Nu is je Gitea up-to-date zonder enige downtime.

Conclusie

Gefeliciteerd! Je hebt met succes de Gitea git dienst geïnstalleerd op Debian 11. Je kunt nu gemakkelijk Gitea bijwerken en je git repository beheren via een web browser. Verder ben je welkom om me te vragen als je vragen hebt.