GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer le service Gitea Git sur Debian 11

Gitea est un serveur Git gratuit, open-source, auto-hébergé et bien connu écrit dans le langage de programmation Go. Il s'agit d'une plateforme de contrôle de version similaire à Github. Il est robuste, évolutif et offre de nombreuses fonctionnalités, notamment le suivi des problèmes et du temps, la création de branches de référentiel, le verrouillage et le balisage de fichiers, la fusion et bien d'autres. Si vous recherchez un service Git auto-hébergé, Gitea est probablement la meilleure option que vous puissiez utiliser.

Dans ce tutoriel, je vais vous montrer comment installer Gitea sur Debian 11.

Prérequis

  • Un serveur exécutant Debian 11.
  • Un mot de passe root est configuré sur le serveur.

Installer et configurer la base de données MariaDB

Gitea utilise une base de données MariaDB/MySQL comme backend de base de données. Le serveur de base de données doit donc être installé sur votre serveur. S'il n'est pas installé, vous pouvez l'installer en exécutant la commande suivante :

apt-get install mariadb-server -y

Une fois MariaDB installée, vous devrez définir un mot de passe MariaDB et sécuriser l'installation. Vous pouvez le faire en exécutant le script mysql_secure_installation :

mysql_secure_installation

Répondez à toutes les questions comme indiqué ci-dessous :

Enter current password for root (enter for none): 
OK, successfully used password, moving on...
Set root password? [Y/n] Y
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

Ensuite, connectez-vous à l'interface MariaDB à l'aide de la commande suivante :

mysql -u root -p

Une fois connecté, créez une base de données et un utilisateur pour Gitea avec la commande suivante :

MariaDB [(none)]> CREATE DATABASE gitea;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY 'password';

Ensuite, videz les privilèges et quittez MariaDB avec la commande suivante :

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

Installer Gitea

Tout d'abord, vous devrez créer un utilisateur dédié pour exécuter Gitea. Vous pouvez le créer avec la commande suivante :

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

Vous devriez voir le résultat suivant :

Adding system user `git' (UID 109) ...
Adding new group `git' (GID 115) ...
Adding new user `git' (UID 109) with group `git' ...
Creating home directory `/opt/git' ...

Ensuite, téléchargez la dernière version de Gitea avec la commande suivante :

curl -s https://api.github.com/repos/go-gitea/gitea/releases/latest |grep browser_download_url | cut -d '"' -f 4 | grep '\linux-amd64$' | wget -i -

Ensuite, déplacez le binaire Gitea vers le chemin système avec la commande suivante :

mv gitea-*-linux-amd64 /usr/local/bin/gitea

Ensuite, définissez l'autorisation exécutable sur le binaire Gitea :

chmod +x /usr/local/bin/gitea

Ensuite, vérifiez la version de Gitea à l'aide de la commande suivante :

gitea --version

Vous devriez voir le résultat suivant :

Gitea version 1.15.3 built with GNU Make 4.1, go1.16.8 : bindata, sqlite, sqlite_unlock_notify

Ensuite, vous devrez créer une structure de répertoires pour Gitea. Vous pouvez le créer avec la commande suivante :

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

Ensuite, définissez l'autorisation et la propriété appropriées avec la commande suivante :

chown git:git /var/lib/gitea/{data,indexers,log}
chmod 750 /var/lib/gitea/{data,indexers,log}
chown root:git /etc/gitea
chmod 770 /etc/gitea

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Créer un fichier de service Systemd pour Gitea

Ensuite, vous devrez créer un fichier de service systemd pour Gitea. Vous pouvez le créer avec la commande suivante :

nano /etc/systemd/system/gitea.service

Ajoutez les lignes suivantes :

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mysql.service

[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
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=/opt/git GITEA_WORK_DIR=/var/lib/gitea

[Install]
WantedBy=multi-user.target

Enregistrez et fermez le fichier puis rechargez le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarrez et activez le service Gitea avec la commande suivante :

systemctl start gitea
systemctl enable gitea

Pour vérifier le service Gitea, exécutez la commande suivante :

systemctl status gitea

Vous devriez voir le résultat suivant :

? gitea.service - Gitea (Git with a cup of tea)
     Loaded: loaded (/etc/systemd/system/gitea.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-10-02 12:59:27 UTC; 9s ago
   Main PID: 19179 (gitea)
      Tasks: 8 (limit: 4679)
     Memory: 128.3M
        CPU: 1.415s
     CGroup: /system.slice/gitea.service
             ??19179 /usr/local/bin/gitea web -c /etc/gitea/app.ini

Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 cmd/web.go:102:runWeb() [I] Starting Gitea on PID: 19179
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/setting/setting.go:569:NewContext() [W] Custom config '/etc/gitea/app.ini' not>
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:21:PreloadSettings() [I] AppPath: /usr/local/bin/gitea
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:22:PreloadSettings() [I] AppWorkPath: /var/lib/gitea
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:23:PreloadSettings() [I] Custom path: /var/lib/gitea/custom
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:24:PreloadSettings() [I] Log path: /var/lib/gitea/log
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:25:PreloadSettings() [I] Preparing to run install page
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:28:PreloadSettings() [I] SQLite3 Supported
Oct 02 12:59:29 debian11 gitea[19179]: 2021/10/02 12:59:29 cmd/web.go:196:listen() [I] Listen: http://0.0.0.0:3000
Oct 02 12:59:29 debian11 gitea[19179]: 2021/10/02 12:59:29 ...s/graceful/server.go:62:NewServer() [I] Starting new Web server: tcp:0.0.0.0:300>

A ce stade, Gitea est démarré et écoute sur le port 3000. Vous pouvez le vérifier avec la commande suivante :

ss -antpl | grep 3000

Vous devriez voir le résultat suivant :

LISTEN 0      4096               *:3000             *:*    users:(("gitea",pid=19179,fd=6))

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Configurer Nginx pour Gitea

Ensuite, vous devrez installer et configurer Nginx en tant que proxy inverse pour Gitea. Tout d'abord, installez le Nginx avec la commande suivante :

apt-get install nginx -y

Ensuite, créez un fichier de configuration d'hôte virtuel Nginx avec la commande suivante :

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

Ajoutez les lignes suivantes :

server {
    listen 80;
    server_name gitea.example.com;
    access_log /var/log/nginx/gitea_access.log;
    error_log /var/log/nginx/gitea_error.log;


    location / {
        proxy_pass http://localhost:3000;
    }
}

Enregistrez et fermez le fichier puis vérifiez le Nginx pour toute erreur de syntaxe :

nginx -t

Vous devriez voir le résultat suivant :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, redémarrez le service Nginx avec la commande suivante :

systemctl restart nginx

Pour vérifier l'état de Nginx, exécutez la commande suivante :

systemctl status nginx

Vous devriez voir le résultat suivant :

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-10-02 13:00:33 UTC; 4s ago
       Docs: man:nginx(8)
    Process: 19209 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 19211 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 19212 (nginx)
      Tasks: 3 (limit: 4679)
     Memory: 3.2M
        CPU: 50ms
     CGroup: /system.slice/nginx.service
             ??19212 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??19213 nginx: worker process
             ??19214 nginx: worker process

Oct 02 13:00:33 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Oct 02 13:00:33 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

Ensuite, vous devrez éditer le fichier Gitea app.ini et définir vos informations de domaine :

nano /etc/gitea/app.ini

Modifiez les lignes suivantes :

DOMAIN           = gitea.example.com
ROOT_URL         = http://gitea.example.com/

Enregistrez et fermez le fichier puis redémarrez le service Gitea pour appliquer les modifications :

systemctl restart gitea

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Accéder à l'interface Web Gitea

Maintenant, ouvrez votre navigateur Web et accédez à l'interface Web de Gitea en utilisant l'URL http://gitea.example.com . Vous serez redirigé vers la page suivante :

Fournissez les informations de votre base de données Gitea, URL, nom d'utilisateur administrateur, mot de passe, port et cliquez sur Installer Gitéa bouton. Vous devriez voir le tableau de bord Gitea sur la page suivante :

Conclusion

Toutes nos félicitations! vous avez installé avec succès Gitea avec Nginx en tant que proxy inverse sur Debian 11. Vous pouvez implémenter Gitea dans votre environnement de développement pour suivre et gérer votre projet.


Debian
  1. Comment installer Apache ZooKeeper sur Debian 10

  2. Comment installer osquery sur Debian 10

  3. Comment installer WildFly sur Debian 11

  4. Comment installer Gitea sur Debian 9

  5. Comment installer Suricata sur Debian 11

Comment installer Icinga 2 sur Debian 8

Comment installer Git sur Debian 9 Stretch

Comment installer Git sur Debian 10

Comment installer Gitea sur Debian 10

Comment installer Gitea sur Debian 11

Comment installer Git sur Debian 10 ?