User Tools

Site Tools


infra:apps:gitea

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
infra:apps:gitea [2023/12/01 14:43] fredinfra:apps:gitea [2025/01/15 20:22] (current) – removed fred
Line 1: Line 1:
-====== Gitea ====== 
- 
-[Gitea](https://gitea.io/fr-fr) se présente comme un service d'hébergement et d'accès à des dépôts [Git](https://git-scm.com/), le tout sans douleur. 
- 
-===== Installation ===== 
- 
- 
-Installation 
------------- 
- 
-Pour l'installation, l'article le plus complet que j'ai trouvé (et sur lequel je me suis basé :-)) est disponible [ici](https://jeremyverda.net/installing-gitea-on-debian/). 
- 
-L'installation est relativement simple; le plus compliqué a été de découvrir certaines spécificités et de rendre le service disponible depuis un sous-répertoire sur Nginx. 
- 
-```bash 
-adduser --disabled-login --gecos 'gitea' git 
-su - git 
-``` 
- 
-Comme le rappelle `man adduser` (et aussi le [forum AskUbuntu](https://askubuntu.com/questions/420784/what-do-the-disabled-login-and-gecos-options-of-adduser-command-stand)): 
- 
-``` 
---disabled-login 
-    Do not run passwd to set the password.  The user won't be able 
-    to use  her  account until the password is set. 
- 
---gecos GECOS 
-    Set  the  gecos field for the new entry generated.  adduser will 
-    not ask for finger information if this option is given. 
-``` 
- 
-Voir [ici](https://en.wikipedia.org/wiki/Gecos_field) pour la signification de `GECOS` (TL;DR: on s'attend à avoir le nom, le bâtiment/la chambre, le numéro de téléphone pro, le numéro de téléphone privé et toute autre information, séparées par des virgules). 
- 
-Téléchargez ensuite la bonne version de l'application en fonction de votre architecture, sur la [page de téléchargement](https://dl.gitea.io/) et rendez le exécutable. 
-Attention donc que pour un serveur ARM type Raspberry-Pi, vous ne devrez surtout pas prendre les fichiers type `amd64`. Oui, ça a l'air logique, mais sur le coup, en suivant [le tuto d'installation](https://docs.gitea.io/en-us/install-from-binary/) pas-à-pas, ça l'est moins. 
- 
-Après l'installation, et au premier démarrage, Gitea créera un fichier de configuration spécifique qu'il placera à l'emplacement `custom/conf/app.ini`. Créez déjà les répertoires de stockage pour les données: `mkdir -p custom/conf data`, puis démarrer l'application via `./gitea web`. 
- 
-Si vous souhaitez démarrer Gitea dans un sous-répertoire du domaine, coupez le service, modifiez le fichier afin d'y ajouter `[server] ROOT_URL = /git/` et redémarrez-le ensuite. 
- 
-===== Configuration Nginx ===== 
- 
-### Configuration Nginx 
- 
-```bash 
-server { 
-    listen 443 ssl; 
-    ssl_protocols TLSv1.1 TLSv1.2; 
- 
-    [...] 
- 
-    location /git/ { 
-        proxy_pass http://localhost:3000/; 
-        client_max_body_size 100M; 
-    } 
- 
-    [...] 
-``` 
- 
-Et démarrez le service à la main: `./gitea web`. Vous pourrez ensuite passer à l'installation, en vous rendant sur la bonne page. 
- 
-Une fois que tout sera correctement installé, on peut passer à la (re)configuration via le fichier `custom/conf/app.ini`. Le seul changement que j'ai appliqué consiste à modifier la section `[server]`: 
- 
-```ini 
-[server] 
-PROTOCOL         = http 
-ROOT_URL         = https://grimbox.be/git/ 
-SSH_DOMAIN       = grimbox.be 
-DOMAIN           = grimbox.be 
-HTTP_PORT        = 3000 
-HTTP_ADDR        = 0.0.0.0 
-DISABLE_SSH      = false 
-SSH_PORT         = 22 
-LFS_START_SERVER = true 
-``` 
- 
-### Configuration Supervisord 
- 
-La documentation conseille de passer par [systemd](https://freedesktop.org/wiki/Software/systemd/), mais le tuto conseille plutôt de passer par [supervisor](http://supervisord.org/), ce qui revient +/- au même: 
- 
-```bash 
-apt install supervisor 
-mkdir /var/log/gitea 
-vim /etc/supervisor/conf.d/gitea.conf 
-``` 
- 
-Et copiez le contenu ci-dessous: 
- 
-```ini 
-[program:gitea] 
-directory=/home/git/ 
-command=/home/git/gitea web 
-autostart=true 
-autorestart=true 
-startsecs=10 
-stdout_logfile=/var/log/gitea/stdout.log 
-stdout_logfile_maxbytes=1MB 
-stdout_logfile_backups=10 
-stdout_capture_maxbytes=1MB 
-stderr_logfile=/var/log/gitea/stderr.log 
-stderr_logfile_maxbytes=1MB 
-stderr_logfile_backups=10 
-stderr_capture_maxbytes=1MB 
-environment = HOME="/home/git", USER="git" 
-``` 
- 
-Et on termine par `supervisorctl start gitea` (après avoir arrêté l'instance qui tourne déjà en manuel :-)). 
- 
-===== Backup ===== 
- 
-Backup 
------- 
- 
-Toute la magie tient dans une seule commande: `./gitea dump`. 
- 
-Cela créera une archive ~timestampée~ ~horodatée~ avec un indice. Générée le 04/07/2018 à 13h16, elle porte par exemple l'indice 1530702980. 
-Ajoutez donc ce dump dans un crontab, et envoyez le tout vers votre dépôt Borg préféré :-) 
- 
-Restore 
-------- 
- 
-Vous pouvez dézipper l'archive générée ci-dessus, mais la structure sera différente de l'arborescence des fichiers attendus par Gitea. Les répertoires `custom` et `data` se trouveront aux bons endroits, mais la base de données devra être reconfigurée en fonction de votre configuration (avec du SQLite, c'est plus simple...). 
- 
-Idem pour les dépôts: ils sont archivés dans un fichier `gitea-repo.zip` à l'intérieur du dump réalisé ci-dessus. 
- 
-Comme l'indique la [documentation](https://docs.gitea.io/en-us/backup-and-restore/), il n'y a donc pas de processus automatique. 
- 
- 
- 
-===== Mise à jour ===== 
- 
-<code> 
-supervisorctl stop gitea 
-su - git 
-./gitea dump 
-wget <gitea_url> # Voir https://dl.gitea.com/gitea 
-cp <gitea_url_result> gitea 
-chmod +x gitea 
-exit 
-supervisorctl start gitea 
-</code> 
- 
- 
  
infra/apps/gitea.1701441830.txt.gz · Last modified: 2023/12/01 14:43 by fred