« Gitea » : différence entre les versions

De Wiki doc

(→‎Mise à jour de Gitea : Ajout d'une précision.)
m (Correction d'une erreur de coloration syntaxique.)
Ligne 11 : Ligne 11 :


'''Création de la base et de l'utilisateur exploitant'''
'''Création de la base et de l'utilisateur exploitant'''
<source lang=mysql">
<source lang="mysql">
CREATE DATABASE gitea;
CREATE DATABASE gitea;
GRANT all privileges on gitea.* to 'gitea'@'localhost' identified by 'gitea';
GRANT all privileges on gitea.* to 'gitea'@'localhost' identified by 'gitea';

Version du 9 octobre 2020 à 13:51


Gitea est une forge logiciel libre à source ouverte et une branche de Gogs. C'est un logiciel écrit en Go et une alternative auto-hébergeable à Github qui se veut plus légère que Gitlab tant en terme de consommation de ressources qu'en fonctionnalités.

Installation

Installation des dépendances

apt install mariadb-server git dirmngr

Préparation de la base de données

mariadb -u root

Création de la base et de l'utilisateur exploitant

CREATE DATABASE gitea;
GRANT all privileges on gitea.* to 'gitea'@'localhost' identified by 'gitea';

Installation de Gitea

Téléchargement de Gitea

wget https://dl.gitea.io/gitea/1.7.1/gitea-1.7.1-linux-amd64.xz

Décompression de Gitea

unxz gitea-1.7.1-linux-amd64.xz

Mise à disposition du binaire

mv gitea-1.7.1-linux-amd64 /usr/local/bin/gitea
chmod +x /usr/local/bin/gitea

Préparation de l'arborescence de travail

mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
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

Création du service Systemd

vim /etc/systemd/system/gitea.service
[Unit]
Description=Gitea (Git avec une tasse de thé)
After=syslog.target
After=network.target
After=mysql.service

[Service]
# Modifiez ces deux valeurs et dé-commentez-les si vous avez
# un dépôt avec beaucoup de fichiers et que vous avez 
# une erreur HTTP 500 à cause de ça
###
#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=/home/git GITEA_WORK_DIR=/var/lib/gitea
# Si vous voulez rediriger Getea vers un port inferieur à 1024, dé-commentez
# les deux valeurs suivante
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl restart gitea
systemctl enable gitea
systemctl status gitea

La suite de l'installation se fait via l'interface Web. J'ai utilisé pour mon usage personnel le proxy inverse Haproxy avec un certificat Letsencrypt mais on verra bien souvent Nginx pour cet usage. Si vous n'utilisez pas de proxy inverse, le service est accessible via sont IP avec le port 3000.

Lors de cette configuration il est possible de changer quelques paramètres. Pour ma part, j'ai choisi de désactiver la possibilité de s'inscrire (seul l'administrateur peut créer des comptes) ainsi que de désactiver Gravatar et OpenID.

ASTUCE

Il est tout à fait possible d'éditer manuellement cette configuration en écrivant directement dans le fichier /etc/gitea/app.ini.

INFORMATION

Le premier utilisateur créé sera l'administrateur de Gitea.

Une fois l'installation terminée, il est conseillé d’interdire l'écriture sur le fichier de configuration de Gitea:

chmod 750 /etc/gitea
chmod 644 /etc/gitea/app.ini

Sources de la section

Mise à jour de Gitea

Les mises à jours sont simples puisque il suffit d'arreter le service Gitea avec:

systemctl stop gitea.service

et de remplacer le binaire /usr/local/bin/gitea par le plus récent avant de relancer le service avec:

systemctl start gitea.service

INFORMATION

Il faut attendre quelques minutes que le service se lance la première fois. J'imagine qu'il met à jour la base de données.

Utilisation

Création d'un dépôt

La création d'un nouveau dépôt s'effectue via le bouton "+" en haut à droite de l'interface utilisateur. À la fin du formulaire, un choix vous est laissé d'initialiser ou pas le dépôt. Si vous laissez Gitea l'initialiser, il va tout créer pour vous, sinon vous devrez faire ces quelques étapes à la main. Après avoir renseigné les informations demandées et dans le cas d'une non initialisation automatique. les instructions suivantes sont données pour la création en local des fichiers et envoi au serveur via Git:

Création d'un nouveau dépôt en ligne de commande

touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin http://localhost:3000/yohan/Test.git
git push -u origin master

Soumission d'un dépôt existant par ligne de commande

git remote add origin http://localhost:3000/yohan/Test.git
git push -u origin master