Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| documentation_technique:gitea [01/20/2019 15:43:48] – ↷ Nom de la page changé de documentation_technique:gogs à documentation_technique:gitea bfaverdin | documentation_technique:gitea [10/23/2026 10:08:42] (Version actuelle) – typo thomas | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== | + | ====== |
| - | Installation de Gogs sur [[documentation_technique: | + | Le serveur [[https:// |
| - | ====== Installation ====== | + | La migration s'est faite en suivant la [[https:// |
| - | ===== Mise à niveau du serveur avant de commencer ===== | + | Les principales étapes sont les suivantes : |
| - | < | + | * installation de gitea 1.0.3 en utilisant les binaires disponibles sur le site officiel ; |
| - | sudo apt update; sudo apt upgrade | + | * import de la base de données et des fichiers, renommage de l' |
| - | </ | + | * lancement de gitea et vérification du fonctionnement ; |
| - | ===== Installation | + | * migration |
| + | * correction de la configuration | ||
| - | < | + | ====== Installation ====== |
| - | sudo apt install -y git mercurial | + | |
| - | </ | + | L' |
| - | ===== Installation | + | |
| ==== Installation de MariaDB ==== | ==== Installation de MariaDB ==== | ||
| < | < | ||
| - | sudo apt install -y mariadb-server | + | # apt install -y mariadb-server |
| </ | </ | ||
| + | |||
| ==== Sécurisation de MariaDB ==== | ==== Sécurisation de MariaDB ==== | ||
| < | < | ||
| - | $ sudo mysql_secure_installation | + | # mysql_secure_installation |
| NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB | NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB | ||
| Ligne 87: | Ligne 88: | ||
| Thanks for using MariaDB! | Thanks for using MariaDB! | ||
| </ | </ | ||
| - | Le mot de passe root pour la connexion à MariaDB ce trouve dans notre utilitaire de mot de passe. | ||
| - | ===== Création de la BDD qui accueillera Gogs ===== | + | ===== Création de la BDD ===== |
| < | < | ||
| - | sudo mysql -u" | + | # mysql -u" |
| - | CREATE DATABASE IF NOT EXISTS | + | CREATE DATABASE IF NOT EXISTS |
| </ | </ | ||
| - | Note : **RAND** est à remplacer par une chaîne de caractère aléatoire de votre choix. | ||
| - | ===== Création de l' | + | ===== Création de l' |
| < | < | ||
| - | CREATE USER 'gogs_RAND' | + | CREATE USER 'gitea' |
| - | GRANT ALL PRIVILEGES ON gogs_RAND.* TO 'gogs_RAND' | + | GRANT ALL PRIVILEGES ON gitea.* TO 'gitea' |
| + | |||
| + | FLUSH PRIVILEGES; | ||
| </ | </ | ||
| - | Le mot de passe **gogs_RAND_PASSWORD_HERE** de l' | ||
| - | |||
| - | Note : **RAND** est à remplacer par une chaîne de caractère aléatoire de votre choix. | ||
| - | |||
| - | ===== Ajout d'un utilisateur système ' | ||
| - | Cet utilisateur servira à contenir le service et les fichiers Gogs. | + | ===== Export/ |
| < | < | ||
| - | sudo adduser --disabled-login --gecos ' | + | # mysqldump gogs_EpaiPhe7 > gogs_EpaiPhe7.sql |
| + | # mysql gitea < gogs_EpaiPhe7.sql | ||
| </ | </ | ||
| - | ===== Installation du langage Go dans sa dernière version ===== | ||
| - | < | + | Le reste de l'installation suit la procédure officielle (utilisateur git, droits, etc.). La configuration au niveau |
| - | Le langage Go ne nécessite que des binaires statiques pour fonctionner. | + | |
| - | </ | + | |
| - | //(PS : Les dépôts d'Ubuntu 16.04 ne disposent que de la version 1.6 de golang, la dernière en date est la 1.8rc2 avec comme bonne nouvelles un gain de performance non négligeable de plus de 20%)// | + | |
| - | < | + | ===== Intégration de Gitea à LDAP ===== |
| - | sudo su - git | + | |
| - | cd ~ | + | |
| - | mkdir local | + | |
| - | wget https:// | + | |
| - | sha256sum go1.8.linux-amd64.tar.gz | + | |
| - | </ | + | |
| - | Sortie du hash sha256sum nécessaire : | + | |
| < | < | ||
| - | 53ab94104ee3923e228a2cb2116e5e462ad3ebaeea06ff04463479d7f12d27ca | + | Type d' |
| + | Protocole de sécurité : LDAPS | ||
| + | Hôte : leodagan.hadoly.fr | ||
| + | Port : 636 | ||
| + | Bind DN : uid=gogs-account, | ||
| + | Bind mot de passe : xxxxxxxxxxxxxxxxxxxxx | ||
| + | Utilisateur Search Base : dc=hadoly, | ||
| + | Filtre utilisateur : (& | ||
| + | Filtre administrateur : Vide | ||
| + | Attribut nom d' | ||
| + | Attribut du prénom : givenName | ||
| + | Attribut du nom de famille : sn | ||
| + | Attribut de l' | ||
| + | [ ] Alllez chercher les attributs dans le contexte de liaison DN | ||
| + | [x] Ne pas vérifier TLS | ||
| + | [x] Authentification activée | ||
| </ | </ | ||
| - | Sortie du hash sha256sum lors de l' | + | |
| + | ====== Administration | ||
| + | |||
| + | ===== Arborescence ===== | ||
| + | * le fichier | ||
| + | * les fichiers | ||
| < | < | ||
| - | git@juris:~$ sha256sum go1.8.linux-amd64.tar.gz | + | root@juris:/ |
| - | 53ab94104ee3923e228a2cb2116e5e462ad3ebaeea06ff04463479d7f12d27ca | + | . |
| + | ├── custom | ||
| + | │ ├── conf | ||
| + | │ ├── public | ||
| + | │ └── templates | ||
| + | ├── data | ||
| + | │ ├── attachments | ||
| + | │ ├── avatars | ||
| + | │ ├── indexers | ||
| + | │ └── sessions | ||
| + | ├── gitea-1.6.4-linux-amd64 | ||
| + | ├── gitea-repositories | ||
| + | ├── └── Dossiers des dépôts des utilisateurs | ||
| + | ├── indexers | ||
| + | │ └── issues.bleve | ||
| + | ├── log | ||
| + | │ ├── gitea.log | ||
| + | │ ├── gitea.log.2019-01-21.001 | ||
| + | │ ├── hooks | ||
| + | │ ├── http.log | ||
| + | │ ├── serv.log | ||
| + | │ ├── xorm.log | ||
| + | │ ├── xorm.log.2019-01-20.001 | ||
| + | │ └── xorm.log.2019-01-21.001 | ||
| + | └── public | ||
| </ | </ | ||
| - | Si tout est bon, on décompresse dans le dossier | + | |
| + | * le dossier | ||
| + | * le dossier " | ||
| + | * le dossier " | ||
| + | * le dossier " | ||
| + | * un lien symbolique (/ | ||
| + | |||
| + | ===== Gestion du service ===== | ||
| + | |||
| + | Un service systemd gitea est disponible pour démarrer/ | ||
| < | < | ||
| - | tar -C /home/git/local -xzf go1.8.linux-amd64.tar.gz | + | # systemctl start/stop/restart gitea |
| </ | </ | ||
| - | ==== Mise en place des variables d' | + | |
| + | ===== Fichier de configuration app.ini ===== | ||
| < | < | ||
| - | cd ~ | + | APP_NAME = Gitea |
| + | RUN_USER = git | ||
| + | RUN_MODE = prod | ||
| - | echo ' | + | [database] |
| + | DB_TYPE | ||
| + | HOST = 127.0.0.1: | ||
| + | NAME = gitea | ||
| + | USER = gitea | ||
| + | PASSWD | ||
| + | SSL_MODE = disable | ||
| + | #PATH = data/gitea.db | ||
| - | echo ' | + | [repository] |
| + | ROOT | ||
| + | ; Force every new repository to be private | ||
| + | FORCE_PRIVATE = true | ||
| - | echo ' | + | [repository.upload] |
| + | ; Maximum size of each file in MB | ||
| + | FILE_MAX_SIZE = 100 | ||
| - | source $HOME/.bashrc | + | [release.attachment] |
| - | </ | + | ; Max size of each file. Defaults to 32MB |
| - | ===== Installation de Gogs ===== | + | MAX_SIZE |
| - | ==== Téléchargement et installation des dépendances ==== | + | [attachment] |
| + | ; Max size of each file. Defaults to 4MB | ||
| + | MAX_SIZE | ||
| - | < | + | [server] |
| - | go get -u github.com/gogits/gogs | + | DOMAIN |
| - | </code> | + | HTTP_PORT |
| - | ==== Compilation du programme principal ==== | + | ROOT_URL |
| + | DISABLE_SSH | ||
| + | SSH_PORT | ||
| + | SSH_DOMAIN | ||
| + | START_SSH_SERVER | ||
| + | OFFLINE_MODE | ||
| - | <code> | + | [mailer] |
| - | cd $GOPATH/ | + | ENABLED = true |
| + | SUBJECT = Notification git.hadoly.fr | ||
| + | HOST = yvain.hadoly.fr: | ||
| + | FROM = " | ||
| + | # ; Mailer user name and password | ||
| + | USER = noreply | ||
| + | PASSWD | ||
| - | go build | + | [service] |
| - | </ | + | REGISTER_EMAIL_CONFIRM = false |
| - | ==== ' | + | ENABLE_NOTIFY_MAIL |
| + | DISABLE_REGISTRATION | ||
| + | ENABLE_CAPTCHA | ||
| + | REQUIRE_SIGNIN_VIEW | ||
| - | < | + | [picture] |
| - | cd $GOPATH/ | + | DISABLE_GRAVATAR |
| + | ENABLE_FEDERATED_AVATAR = false | ||
| - | mkdir -p custom/ | + | [session] |
| + | PROVIDER = file | ||
| - | vi app.ini | + | [log] |
| + | MODE = file | ||
| + | LEVEL = Info | ||
| + | ROOT_PATH = / | ||
| + | |||
| + | [security] | ||
| + | INSTALL_LOCK | ||
| + | SECRET_KEY | ||
| + | INTERNAL_TOKEN = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | ||
| </ | </ | ||
| - | ==== Lancement ' | ||
| - | //(PS : Cette étape permet d' | + | ====== Procédure de mise à jour ====== |
| + | * Set target version number (latest release on github | ||
| < | < | ||
| - | cd $GOPATH/ | + | export VERSION=X.X.X |
| - | ./gogs web | + | |
| </ | </ | ||
| - | Voici les informations entrées | + | |
| + | * Arrêter le service | ||
| < | < | ||
| - | --- Connexion BDD | + | # systemctl stop gitea |
| - | Type : MySQL | + | |
| - | Utilisateur : gogs_RAND | + | |
| - | Nom de la BDD : gogs_RAND | + | |
| - | Mot de passe de l' | + | |
| - | + | ||
| - | --- Configuration Gogs | + | |
| - | Domaine (avec port) : [http:// | + | |
| - | + | ||
| - | --- Options avancés | + | |
| - | [x] Enable Offline Mode | + | |
| - | [x] Disable Gravatar Service | + | |
| - | [x] Enable Captcha | + | |
| - | + | ||
| - | --- Admin account Settings | + | |
| - | Username : admin_or_anything | + | |
| - | Password : YOUR_ADMIN_PASSWORD_HERE | + | |
| - | Admin Email : your_m@il.here | + | |
| </ | </ | ||
| - | Pour modifier ces paramètres manuellement, | ||
| + | * Faire un backup de la base de données par sécurité : | ||
| < | < | ||
| - | sudo vi / | + | # mysqldump gitea > gitea.sql |
| </ | </ | ||
| - | Ce fichier surcharge la configuration par défaut de gogs fournie dans le fichier : | ||
| + | * Télécharger le dernier binaire en date depuis le site de gitea : | ||
| < | < | ||
| - | /home/git/go/src/ | + | # cd /var/lib/gitea && wget https:// |
| </ | </ | ||
| - | //Astuce : Utiliser la génération automatique de ce fichier via le configurateur web est une bonne manière de ne pas faire de faute de typo.// | ||
| - | |||
| - | ===== Mise en place du démon (service) Gogs ===== | ||
| - | |||
| - | Nous allons maintenant faire en sorte que Gogs s' | ||
| - | |||
| - | ==== Installation de ' | ||
| + | * Changer les droits : | ||
| < | < | ||
| - | sudo apt install | + | # chown git: gitea-${VERSION}-linux-amd64 && chmod u+x gitea-${VERSION}-linux-amd64 |
| </ | </ | ||
| - | ==== Ajout d'un programme Gogs dans supervisord ==== | ||
| - | sudo vim / | + | * Modifier le lien symbolique : |
| < | < | ||
| - | [program: | + | # cd /usr/local/bin && unlink gitea && ln -s /var/lib/gitea/gitea-${VERSION}-linux-amd64 gitea |
| - | directory=/home/git/go/ | + | |
| - | command=/ | + | |
| - | autostart=true | + | |
| - | autorestart=true | + | |
| - | startsecs=10 | + | |
| - | stdout_logfile=/var/log/ | + | |
| - | stdout_logfile_maxbytes=1MB | + | |
| - | stdout_logfile_backups=10 | + | |
| - | stdout_capture_maxbytes=1MB | + | |
| - | stderr_logfile=/ | + | |
| - | stderr_logfile_maxbytes=1MB | + | |
| - | stderr_logfile_backups=10 | + | |
| - | stderr_capture_maxbytes=1MB | + | |
| - | environment = HOME="/home/git", USER=" | + | |
| - | user = git | + | |
| </ | </ | ||
| - | Création | + | |
| + | * vérifier et mettre à jour la base de donnée: | ||
| < | < | ||
| - | sudo mkdir -p /var/log/gogs | + | sudo -u git gitea doctor check --config / |
| + | sudo -u git gitea migrate --config | ||
| </ | </ | ||
| - | De ce fait, si vous souhaiter voir les logs de Gogs : | ||
| - | < | + | * Démarrer le service |
| - | sudo tail -f / | + | |
| - | </ | + | |
| - | Arrêt/ | + | |
| < | < | ||
| - | sudo service supervisor restart | + | # systemctl start gitea |
| </ | </ | ||
| - | ---- | + | En cas de problème lors de la mise à jour, arrêter le service, restaurer la base de données et faire pointer le lien symbolique sur la version précédente du binaire. |
| - | Aide diverses et sources | + | Ça peut aider de jeter un oeil dans les logs aussi (/var/lib/gitea/log/gitea.log) et d' |
| - | ===== Intégration | + | **Penser à supprimer les version n-2** |
| + | |||
| + | ====== Personnalisation ====== | ||
| + | |||
| + | Le dossier d' | ||
| + | |||
| + | C'est à partir de cet emplacement que le site peut être personnalisé et plus particulièrement en intervenant sur le dossier '' | ||
| + | |||
| + | ==== Page de garde ==== | ||
| + | |||
| + | Il est possible de faire une page de garde personnalisée en créant le fichier '' | ||
| + | |||
| + | Il est également possible de personnaliser l' | ||
| + | |||
| + | Il est ainsi possible d' | ||
| + | |||
| + | ==== Logo & favicon ==== | ||
| + | 2021 : la technique permettant de changer le logo ne marche plus. Corrigé en faisant un lien symbolique '' | ||
| + | |||
| + | Afin de mettre le logo Hadoly dans le menu et en favicon, il suffit de remplacer le fichier '' | ||
| + | |||
| + | Concernant le logo de la page de garde, il faut modifier l' | ||
| + | |||
| + | ==== Liste des utilistateurs ==== | ||
| + | |||
| + | Par défault, la liste des utilisateurs est publique, et visible y compris aux persononnes non authentifiées. (sur https:// | ||
| + | Ce n'est pas configurable pour le moment, cf [[https:// | ||
| + | |||
| + | Il est possible de passer REQUIRE_SIGNIN_VIEW à true, mais cela empêche alors d' | ||
| + | |||
| + | Pour masquer la liste des utilisateurs dans l' | ||
| < | < | ||
| - | Type d' | + | {{template " |
| - | Protocole de sécurité : LDAPS | + | <div class=" |
| - | Hôte : leodagan.hadoly.fr | + | {{template " |
| - | Port : 636 | + | <div class="ui container"> |
| - | Bind DN : uid=gogs-account, | + | |
| - | Bind mot de passe : motdepassesecret | + | <div class="ui user list"> |
| - | Utilisateur Search Base : dc=hadoly, | + | La liste des utilisateurs n'est pas disponible. |
| - | Filtre utilisateur : (& | + | </ |
| - | Filtre administrateur : Vide | + | |
| - | Attribut nom d'utilisateur : uid | + | </ |
| - | Attribut du prénom : givenName | + | </ |
| - | Attribut du nom de famille : sn | + | {{template " |
| - | Attribut de l' | + | |
| - | [ ] Alllez chercher les attributs dans le contexte de liaison DN | + | |
| - | [x] Ne pas vérifier TLS | + | |
| - | [x] Authentification activée | + | |
| </ | </ | ||
| - | < | ||
| + | Il faut aussi bloquer le endpoint d'API '' | ||
| + | Pour tester: '' | ||
| + | |||
| + | Pour bloquer | ||
| + | Le comportement par default de l'API, si on fait une requète avec n' | ||
| + | |||
| + | Sollution très imparfaite qui bloque un petit peu, et laisse la recherche fonctionner du moment qu'on fournis au moins 3 lettres ou chiffres. | ||
| + | |||
| + | < | ||
| + | location ~ ^/ | ||
| + | if ($args ~* " | ||
| + | return 403; | ||
| + | } | ||
| + | </ | ||