From b67d48213fa7f2efda1784d0f1caab2184efe204 Mon Sep 17 00:00:00 2001 From: Adrien Bourmault Date: Sun, 10 Mar 2024 20:31:28 +0100 Subject: [PATCH] Actualiser README.md --- README.md | 308 ++++++++++++++++++++++++------------------------------ 1 file changed, 137 insertions(+), 171 deletions(-) diff --git a/README.md b/README.md index 51a696f..da67120 100644 --- a/README.md +++ b/README.md @@ -2,25 +2,19 @@ Service de forge logicielle du chaton de Libre en communs basé sur le logiciel libre Gitea : https://gitea.io/. -Responsable: Christian Momon (@cpm) +Responsable: Adrien Bourmault (@neox) -Anciens responsables : n/a. +Anciens responsables : Christian Momon (@cpm). La première version de cette documentation est basée sur la [documentation Devinsy](urlhttps://forge.devinsy.fr/adminsys/documentation/src/branch/master/forge.devinsy.fr.md). Procédure d'installation inspirée de https://docs.gitea.io/en-us/install-from-binary/ où Gitea consiste en un unique binaire. -À noter l'absence de paquet dans Debian : https://docs.gitea.io/en-us/install-from-package/#debian - -À noter l'absence de paquet deb pertinent : - -> Although there is a package of Gitea in Debian’s contrib, it is not supported directly by us. -> Unfortunately, the package is not maintained anymore and broken because of missing sources. -> Please follow the deployment from binary guide instead. +Né en décembre 2022, Forgejo est un projet très jeune qui se réferre encore beaucoup à Gitea, la source de son fork. Notamment pour sa documentation. Note : la documentation est traduite en français mais pas complétement. La consultation en version française peut vous faire perdre beaucoup d'informations utiles. Voir par exemple entre https://docs.gitea.io/en-us/install-from-binary/ et https://docs.gitea.io/fr-fr/install-from-binary/. -[TOC] +Note : pour l'instant, Forgejo est un _soft fork_ de Gitea, avec la volonté d'être interchangeable. Cela a pour conséquence que certaines variables d'envrionnement et certains messages contiennent le nom Gitea au lieu du nom Forgejo. # Intallation @@ -204,7 +198,7 @@ adduser \ --gecos 'Git Version Control' \ --group \ --disabled-password \ - --home /srv/gitea/ \ + --home /srv/forgejo/ \ git ``` @@ -213,7 +207,7 @@ adduser \ Création de l'arborescence dédiée : ``` -export GITEA_WORK_DIR=/srv/gitea +export GITEA_WORK_DIR=/srv/forgejo mkdir -p $GITEA_WORK_DIR/{bin,custom,data,tmp} chown -R git:git $GITEA_WORK_DIR chmod -R ug+x $GITEA_WORK_DIR @@ -222,16 +216,16 @@ chmod -R o-rwx $GITEA_WORK_DIR Création du dossier de configuration : ``` -mkdir /etc/gitea -chown root:git /etc/gitea -chmod ug+rwx /etc/gitea -chmod o-rwx /etc/gitea +mkdir /etc/forgejo +chown root:git /etc/forgejo +chmod ug+rwx /etc/forgejo +chmod o-rwx /etc/forgejo ``` Création du dossier de logs (optionnel) : ``` -mkdir /var/log/gitea -chown git.git /var/log/gitea +mkdir /var/log/forgejo +chown git.git /var/log/forgejo ``` ## Récupération du binaire @@ -245,12 +239,18 @@ export GITEA_VERSION=1.XX.X La télécharger : ``` -cd /srv/gitea/bin/ -wget -O gitea https://dl.gitea.io/gitea/$GITEA_VERSION/gitea-$GITEA_VERSION-linux-amd64 -chown root:git . gitea -chmod g=rx . gitea +mkdir -p /srv/forgejo/bin/ +cd /srv/forgejo/bin/ +wget https://codeberg.org/forgejo/forgejo/releases/download/v${VERSION}/forgejo-${VERSION}-linux-amd64 ``` +Vérifier cohérence du fichier : +``` +wget https://codeberg.org/forgejo/forgejo/releases/download/v${VERSION}/forgejo-${VERSION}-linux-amd64.sha256 +sha256sum -c forgejo-${VERSION}-linux-amd64.sha256 +``` + + Installer gpg : ``` apt-get install gpg @@ -258,26 +258,26 @@ apt-get install gpg Vérifier sa signature : ``` -wget https://dl.gitea.io/gitea/$GITEA_VERSION/gitea-$GITEA_VERSION-linux-amd64.asc -gpg --keyserver pgp.mit.edu --recv 7C9E68152594688862D62AF62D9AE806EC1592E2 -gpg --verify gitea-$GITEA_VERSION-linux-amd64.asc gitea +wget https://codeberg.org/forgejo/forgejo/releases/download/v${VERSION}/forgejo-${VERSION}-linux-amd64.asc +gpg --keyserver keys.openpgp.org --recv EB114F5E6C0DC2BCDD183550A4B61A2DC5923710 +gpg --verify forgejo-${VERSION}-linux-amd64.asc forgejo-${VERSION}-linux-amd64 ``` - +Renommer : +``` +ln -s forgejo-${VERSION}-linux-amd64 forgejo +chown root:git . forgejo +chmod g=rx . forgejo +``` ## Intégration du service dans Systemd -La documentation de Gitea contient une page dédiée : - https://docs.gitea.io/en-us/linux-service/ +Forgejo propose un fichier prêt à l'emploi dont il faut modifier manuellement quelques paramètres. -Gitea propose un fichier prêt à l'emploi dont il faut modifier manuellement quelques paramètres : - - https://github.com/go-gitea/gitea/blob/master/contrib/systemd/gitea.service - -Fichier personnalisé pour la forge Chalec à mettre dans /etc/systemd/system/gitea.service : +Fichier personnalisé à mettre dans `/etc/systemd/system/forgejo.service` : ``` [Unit] -Description=Gitea (Git with a cup of tea) +Description=Forgejo (Beyond coding. We forge.) After=syslog.target After=network.target Wants=postgresql.service @@ -294,10 +294,10 @@ RestartSec=2s Type=simple User=git Group=git -WorkingDirectory=/srv/gitea/ -ExecStart=/srv/gitea/bin/gitea web --config /etc/gitea/gitea.ini +WorkingDirectory=/srv/forgejo/ +ExecStart=/srv/forgejo/bin/forgejo web --config /etc/forgejo/forgejo.ini Restart=always -Environment=USER=git HOME=/srv/gitea/ GITEA_WORK_DIR=/srv/gitea +Environment=USER=git HOME=/srv/forgejo/ GITEA_WORK_DIR=/srv/forgejo [Install] WantedBy=multi-user.target @@ -305,8 +305,9 @@ WantedBy=multi-user.target Démarrage et activation du service : ``` -systemctl enable gitea.service -systemctl start gitea.service +systemctl daemon-reload +systemctl enable forgejo.service +systemctl start forgejo.service ``` ## Premier démarrage @@ -314,97 +315,74 @@ systemctl start gitea.service Suite au premier démarrage, ouvrir un navigateur web sur le site et cliquer sur « connexion ». Alors une page de configuration générale s'ouvre. La remplir comme suit : - base de données : - - type de base de données : Postgresql - - hôte : 127.0.0.1:5432 - - nom d'utilisateur : giteadba - - mot de passe : xxxxxxxxxxxx - - nom de la base : giteadb - - SSL : Disable - - Schéma : vide +- type de base de données : Postgresql +- hôte : 127.0.0.1:5432 +- nom d'utilisateur : forgejodba +- mot de passe : xxxxxxxxxxxx +- nom de la base : forgejodb +- SSL : Disable +- Schéma : vide - configuration générale : - - titre du site : La forge Chalec - - exécuter avec le compte d'un autre utilisateur : git - - domaine du serveur SSH : forge.chalec.org - - chemin des fichiers log : /var/log/gitea/ - - laisser les autres valeurs par défaut +- titre du site : La forge Libre en Communs +- Emplacement racine des dépôts : /srv/forgejo/data/forgejo-repositories +- Répertoire racine Git LFS : /srv/forgejo/data/lfs +- exécuter avec le compte d'un autre utilisateur : git +- domaine du serveur : forge.a-lec.org +- chemin des fichiers log : /var/log/forgejo/ +- laisser les autres valeurs par défaut - paramètres facultatifs : - - paramètres emails : - - hôte SMTP : localhost:25 - - envoyer les mails en tant que : ne-pas-repondre@forge.chalec.org - - exiger la confirmation de l'email lors de l'inscription : oui - - activer les notifications par email : oui +- paramètres emails : +- hôte SMTP : localhost +- port SMTP : 25 +- envoyer les mails en tant que : ne-pas-repondre@forge.a-lec.org +- exiger la confirmation de l'email lors de l'inscription : oui +- activer les notifications par email : oui - paramètres serveurs et tierces parties : - - activer le mode hors-ligne : OUI (servira toutes les ressources localement) - - désactiver Gravatar : OUI - - activer les avatars unifiés : NON - - activer l'inscription OpenID : NON - - désactiver le formulaire d'inscription : non - - n'autoriser l'inscription qu'à partir des services externes : non - - activer l'inscription OpenID : non - - activer le CAPTCHA : OUI - - exiger la connexion à un compte pour afficher les pages : non - - masquer les adresses e-mail par défaut : non - - autoriser la création d'organisation par défaut : oui - - activer le suivi de temps par défaut : NON - - paramètres de compte administrateur : - - nom : chalecadmin (admin est refusé par le formulaire) - - mot de passe : xxxxxxxxxxx - - adresse email : admin@chalec.org +- activer le mode hors-ligne : OUI (servira toutes les ressources localement) +- désactiver Gravatar : OUI +- activer les avatars unifiés : NON +- activer l'inscription OpenID : NON +- désactiver le formulaire d'inscription : non +- n'autoriser l'inscription qu'à partir des services externes : non +- activer l'inscription OpenID : non +- activer le CAPTCHA : OUI +- exiger la connexion à un compte pour afficher les pages : non +- masquer les adresses e-mail par défaut : non +- autoriser la création d'organisation par défaut : NON +- activer le suivi de temps par défaut : NON +- Domaine pour les e-mails cachés : noreply.localhost +- paramètres de compte administrateur : +- nom : alecadmin (admin est refusé par le formulaire) +- mot de passe : xxxxxxxxxxx +- adresse email : admin@a-lec.org -Puis cliquer sur « Installer Gitea ». +Puis cliquer sur « Installer Forgejo ». -Un fichier de configuration a été créé dans `/etc/gitea/gitea.ini`. Par la suite, les valeurs pourront être modifiées dans ce fichier. +Un fichier de configuration a été créé dans `/etc/forgejo/forgejo.ini`. Par la suite, les valeurs pourront être modifiées dans ce fichier. Précautions : ``` -chown -R root:git /etc/gitea -chmod g=rx /etc/gitea -chmod g=r /etc/gitea/gitea.ini +chown -R root:git /etc/forgejo +chmod g=rx /etc/forgejo +chmod g=r /etc/forgejo/forgejo.ini ``` Vérifier que : ``` [server] -ROOT_URL = https://forge.chalec.org/ +ROOT_URL = https://forge.a-lec.org/ ``` Pour vérifier, lancer un test via Gitea > Site Administration > Configuration > SMTP Mailer Configuration > Envoyer un e-mail de test. -## Courriels - -Gitea a besoin de pouvoir envoyer des courriels, pour la gestion des comptes et pour les notifications. - -Configuration la section dédiée dans `/srv/gitea/gitea.ini` : -``` -[mailer] -ENABLED = true -FROM = no-reply@forge.chalec.org -PROTOCOL = sendmail -SENDMAIL_PATH = /usr/sbin/sendmail -``` - -Pour Postfix, modifier `/etc/postfix/transport` : -``` - a-lec.org : - chalec.org : --* discard: -``` - -Et activer : -``` -postmap /etc/postfix/transport -``` - - - ## Licences préférées Extrait de la documentation : ``` PREFERRED_LICENSES: Apache License 2.0,MIT License: - Preferred Licenses to place at the top of the list. - Name must match file name in conf/license or custom/conf/license. +Preferred Licenses to place at the top of the list. +Name must match file name in conf/license or custom/conf/license. ``` Les noms de fichiers à utiliser sont présents dans les sources : https://github.com/go-gitea/gitea/tree/master/options/license @@ -417,6 +395,30 @@ PREFERRED_LICENSES=AGPL-3.0-or-later,GPL-3.0-or-later,CC-BY-SA-4.0 ## Taille maximale de téléversement +Par défaut, la taille maximale d'un téléversement est limité à 3 Mo. Pour augmenter la taille (à 20 Mo pour la forge Chalec), ajouter une section dans /etc/forgejo/forgejo.ini : +``` +[repository.upload] +; Whether repository file uploads are enabled. Defaults to `true` +; ENABLED = true +; Path for uploads. Defaults to `data/tmp/uploads` (tmp gets deleted on gitea restart) +; TEMP_PATH = data/tmp/uploads +; One or more allowed types, e.g. image/jpeg|image/png. Nothing means any file type +; ALLOWED_TYPES = +; Max size of each file in megabytes. Defaults to 3MB +FILE_MAX_SIZE = 20 +; Max number of files per upload. Defaults to 5 +; MAX_FILES = 5 +``` + +Pour les téléversements de version (release) : +``` +[attachment] +; Max size of each file. Defaults to 4MB +MAX_SIZE = 20 +``` + +## Taille maximale de téléversement + Par défaut, la taille maximale d'un téléversement est limité à 3 Mo. Pour augmenter la taille (à 20 Mo pour la forge Chalec), ajouter une section dans /etc/gitea/gitea.ini : ``` [repository.upload] @@ -445,8 +447,8 @@ MAX_SIZE = 20 Enrichir l'arborescence de personnalisation : ``` -mkdir -p /srv/gitea/custom/public/img -cd /srv/gitea/custom/public/img +mkdir -p /srv/forgejo/custom/public/img +cd /srv/forgejo/custom/public/img wget https://git.a-lec.org/a-lec/commissions/chalec/forge/-/raw/main/forge.chalec.org-logo.svg mv forge.chalec.org-logo.svg logo.svg cp logo.svg favicon.svg @@ -457,104 +459,68 @@ chmod go+r * Ajouter le logo sans marge (pour gagner de la place d'affichage) : ``` -mkdir -p /srv/gitea/custom/public/img -cd /srv/gitea/custom/public/img +mkdir -p /srv/forgejo/custom/public/img +cd /srv/forgejo/custom/public/img wget https://git.a-lec.org/a-lec/commissions/chalec/forge/-/raw/main/forge.chalec.org-logo-nomarge.svg chmod go+r * ``` Télécharger le code de la page d'accueil officielle et la remplacer par une version personnalisée : ``` -mkdir -p /srv/gitea/custom/templates/ -cd /srv/gitea/custom/public/templates/ +mkdir -p /srv/forgejo/custom/templates/ +cd /srv/forgejo/custom/public/templates/ wget https://raw.githubusercontent.com/go-gitea/gitea/release/v1.16/templates/home.tmpl -mv home.tmpl home.tpml.ori +mv home.tmpl home.tpml.bak wget https://git.a-lec.org/a-lec/commissions/chalec/forge/-/raw/main/custom/templates/home.tmpl -systemctl restart gitea +systemctl restart forgejo ``` La version personnalisée du code la page d'accueil est là : https://git.a-lec.org/a-lec/commissions/chalec/forge/-/raw/main/home.tmpl. Ce code est potentiellement impacté par les mises à jour et sera à vérifier à chaque fois. -# Mettre à jour +# Mise à jour Constat : -* Gitea consiste en un seul fichier binaire, une base de données, une arborescence de fichiers ; +* Forgejo consiste en un seul fichier binaire, une base de données, une arborescence de fichiers ; * la documentation officielle de Gitea contient une page sur les backups : https://docs.gitea.io/en-us/backup-and-restore/. Donc la procédure de mise à jour consiste juste à faire un export puis relancer avec le nouveau binaire. -## Méthode automatique -Voir le script `update-gitea`. +ATTENTION : toujours lire `changelog` avant toute mise à jour /!\/!\/!\ -## Méthode manuelle - -Les étapes de la méthode manuelle : -* définir dans une variable le numéro de la nouvelle version : +Installer les scripts : ``` -export VERSION=1.X.Y +cd /srv/forgejo/bin/ +wget https://git.a-lec.org/a-lec/commissions/infrastructure/forge/-/raw/main/bin/check_update +wget https://git.a-lec.org/a-lec/commissions/infrastructure/forge/-/raw/main/bin/upgrade +wget https://git.a-lec.org/a-lec/commissions/infrastructure/forge/-/raw/main/bin/doctor +chmod u+x check_update upgrade doctor ``` -* récupérer la dernière version sur https://dl.gitea.io/gitea et faire un sha256sum -c : +Vérifier la disponibilité d'une mise à jour : ``` -cd /srv/gitea/bin -wget https://dl.gitea.io/gitea/$VERSION/gitea-$VERSION-linux-amd64 -wget https://dl.gitea.io/gitea/$VERSION/gitea-$VERSION-linux-amd64.asc -wget https://dl.gitea.io/gitea/$VERSION/gitea-$VERSION-linux-amd64.sha256 -sha256sum -c gitea-$VERSION-linux-amd64.sha256 -# gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2 -gpg --verify gitea-$VERSION-linux-amd64.asc gitea-$VERSION-linux-amd64 +cd /srv/forgejo/bin/ +./check_update ``` -* flusher : +Mise à jour automatique via le script `bin/upgrade` : ``` -cd /srv/gitea/bin -./gitea -c /etc/gitea/gitea.ini manager flush-queues +cd /srv/forgejo/bin/ +./upgrade 1.XX.YY-ZZ ``` -* stopper : +Démarrer : ``` -systemctl stop gitea +systemctl start forgejo ; systemctl status forgejo ; journal -f -u forgejo ``` -* dumper : +Ou suivant la configuration : ``` -su - gitea -c "cd /srv/gitea/bin ; /srv/gitea/bin/gitea dump --tempdir /var/tmp/ -c /etc/gitea/gitea.ini" +systemctl start forgejo ; systemctl status forgejo ; tail -f /var/log/forgejo/forgejo.log ``` -* appeler le docteur : -``` -cd /srv/gitea/bin -./gitea doctor --all --fix -c /etc/gitea/gitea.ini -``` +Faire manuellement le nettoyage dans les anciens dump et les anciennes versions. -* mettre les bons droits : -``` -cd /srv/gitea/bin/ -chown git.gitea gitea-$VERSION-linux-amd64 -chmod u+x gitea -``` - -* remplacer le binaire /srv/gitea/bin/gitea : -``` -ln --force gitea-$VERSION-linux-amd64 gitea -``` - -* démarrer : -``` -systemctl start gitea -``` - -* surveiller les logs : -``` -journal -f -``` -ou suivant la configuration : -``` -tail -f /var/log/gitea/gitea.log -``` - -* supprimer manuellement l'ancien dump et les anciennes versions. # StatoolInfos