Gitea te installeren op Ubuntu 18.04

Gitea is een gratis en open-source versiebeheersysteem dat lijkt op GitHub. Gitea is een kloon van Gogs, een lichtgewicht code hosting oplossing geschreven in Go en gepubliceerd onder de MIT licentie. Het is eenvoudig, snel, gemakkelijk te gebruiken, schaalbaar en een goed alternatief voor andere git diensten. Gitea heeft veel mogelijkheden, waaronder, Ondersteuning voor meerdere databases, Ondersteuning voor meerdere OS, Eenvoudig upgrade proces, CSV ondersteuning, Geïntegreerde Git-aangedreven wiki, Ingebouwd Container Register, Externe git mirroring, problemen en tijd bijhouden, repository vertakking en nog veel meer.

In deze handleiding leggen we uit hoe je Gitea git server op Ubuntu 18.04 server kunt installeren.

Vereisten

  • Een server met Ubuntu 18.04.
  • Een statisch IP adres 192.168.0.101 is ingesteld op je server.
  • Een niet-root gebruiker met sudo privileges.

Aan de slag

Voor je begint moet je je systeem bijwerken met de nieuwste versie. Je kunt dit doen door het volgende commando uit te voeren:

sudo apt-get update -y
sudo apt-get upgrade -y

Installeer Vereiste Pakketten

Eerst moet je MariaDB server, git, unzip en wget op je server installeren. Je kunt ze allemaal installeren met het volgende commando:

sudo apt-get install mariadb-server wget unzip git -y

Als alle pakketten geïnstalleerd zijn, start je de MariaDB service en schakel je die in om bij het opstarten te starten met het volgende commando:

sudo systemctl start mariadb
sudo systemctl enable mariadb

MariaDB configureren

MariaDB is standaard niet beveiligd. Je zult het dus moeten beveiligen. Je kunt dit doen door het script mysql_secure_installation uit te voeren:

sudo mysql_secure_installation

Dit script zal je huidige root wachtwoord veranderen, anonieme gebruikers verwijderen, root login op afstand verbieden, zoals hieronder te zien is:

    Enter current password for root (enter for none):
    Set root password? [Y/n]: N
    Remove anonymous users? [Y/n]: Y
    Disallow root login remotely? [Y/n]: Y
    Remove test database and access to it? [Y/n]:  Y
    Reload privilege tables now? [Y/n]:  Y

Zodra de MariaDB beveiligd is, log je in op MariaDB shell:

mysql -u root -p

Voer je root wachtwoord in als daarom gevraagd wordt. Maak dan een database en gebruiker voor Gitea:

MariaDB [(none)]> SET GLOBAL innodb_file_per_table = ON;
MariaDB [(none)]> CREATE DATABASE giteadb;
MariaDB [(none)]> CREATE USER 'giteauser'@'localhost' IDENTIFIED BY 'password';

Verleen vervolgens alle privileges aan de Gitea met het volgende commando:

MariaDB [(none)]> GRANT ALL ON giteadb.* TO 'giteauser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Werk vervolgens de tekenset van de database bij met het volgende commando:

ALTER DATABASE giteadb CHARACTER SET = utf8mb4 COLLATE utf8mb4_unicode_ci;

Spoel vervolgens de privileges door en verlaat de MariaDB shell:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Vervolgens moet je het standaard config bestand van MariaDB bewerken en enkele veranderingen aanbrengen:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Voeg de volgende regels toe:

innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_default_row_format = dynamic

Sla het bestand op en sluit het. Herstart dan de MariaDB dienst om de veranderingen toe te passen:

sudo systemctl restart mariadb

Crete Gitea Directory Structuur

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

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

Maak vervolgens een mappenstructuur voor Gitea met het volgende commando:

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

Geef vervolgens eigendom aan de Gitea gebruiker met het volgende commando:

sudo chown gitea:gitea /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo chmod 770 /etc/gitea

Installeer Gitea

Vervolgens moet je het Gitea pakket downloaden uit de Git Hub repository. Je kunt het downloaden met het volgende commando:

wget https://github.com/go-gitea/gitea/releases/download/v1.5.1/gitea-1.5.1-linux-amd64

Verplaats vervolgens de gedownloade binary naar de map /usr/local/bin met het volgende commando:

sudo mv gitea-1.5.1-linux-amd64 /usr/local/bin/gitea

Geef vervolgens de juiste toestemming aan de Gitea binary met het volgende commando:

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

Maak vervolgens een systemd service bestand aan om de Gitea dienst te beheren met het volgende commando:

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

Voeg de volgende regels toe:

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

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because of that
RestartSec=2s
Type=simple
User=gitea
Group=gitea
WorkingDirectory=/var/lib/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

Bewaar en sluit het bestand, als je klaar bent. Herlaad dan systemd en start de Gitea dienst met het volgende commando:

sudo systemctl daemon-reload
sudo systemctl start gitea

Je kunt nu de status van Gitea controleren met het volgende commando:

sudo systemctl status gitea

Uitvoer:

? gitea.service - Gitea
   Loaded: loaded (/etc/systemd/system/gitea.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-01-06 08:04:52 UTC; 3s ago
 Main PID: 6030 (gitea)
    Tasks: 8 (limit: 1114)
   CGroup: /system.slice/gitea.service
           ??6030 /usr/local/bin/gitea web -c /etc/gitea/app.ini

Jan 06 08:04:52 ubuntu1804 gitea[6030]: 2019/01/06 08:04:52 [T] Log path: /var/lib/gitea/log
Jan 06 08:04:52 ubuntu1804 gitea[6030]: 2019/01/06 08:04:52 [I] Gitea v1.5.1 built with: bindata, sqlite
Jan 06 08:04:52 ubuntu1804 gitea[6030]: 2019/01/06 08:04:52 [I] Log Mode: Console(Info)
Jan 06 08:04:52 ubuntu1804 gitea[6030]: 2019/01/06 08:04:52 [I] XORM Log Mode: Console(Info)
Jan 06 08:04:52 ubuntu1804 gitea[6030]: 2019/01/06 08:04:52 [I] Cache Service Enabled
Jan 06 08:04:52 ubuntu1804 gitea[6030]: 2019/01/06 08:04:52 [I] Session Service Enabled
Jan 06 08:04:52 ubuntu1804 gitea[6030]: 2019/01/06 08:04:52 [I] SQLite3 Supported
Jan 06 08:04:52 ubuntu1804 gitea[6030]: 2019/01/06 08:04:52 [I] Run Mode: Development
Jan 06 08:04:53 ubuntu1804 gitea[6030]: 2019/01/06 08:04:53 Serving [::]:3000 with pid 6030
Jan 06 08:04:53 ubuntu1804 gitea[6030]: 2019/01/06 08:04:53 [I] Listen: http://0.0.0.0:3000

Toegang tot Gitea Web Interface

Gitea is nu aan en luistert op poort 3000. Open nu je webbrowser en typ de URL http://192.168.0.101:3000/install. Je wordt doorgestuurd naar de volgende pagina:

Geef hier alle vereiste informatie op, zoals Gitea databanknaam, gebruikersnaam, wachtwoord, basis url, run as gebruikersnaam, admin gebruikersnaam, wachtwoord en log pad. Klik dan op de knop Installeer Gitea. Als de installatie met succes voltooid is, word je doorgestuurd naar het Gitea dashboard dat op de volgende pagina te zien is:

Gefeliciteerd! je hebt met succes Gitea git service geïnstalleerd op Ubuntu 18.04 server. Je kunt nu gemakkelijk je git repository beheren via een web browser.