Actualiser README.md
This commit is contained in:
parent
c2969b190a
commit
b67d48213f
308
README.md
308
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
|
||||
|
||||
|
|
Loading…
Reference in New Issue