Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| doc:forgejo [2024/06/19 16:49] – supprimée - modification externe (Unknown date) 127.0.0.1 | doc:forgejo [2025/06/16 19:00] (Version actuelle) – [Installation] Deed | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Forgejo - Port ====== | ||
| + | |||
| + | Le service https:// | ||
| + | |||
| + | Elle permet de travailler à plusieurs sur du code, de le partager au public, d' | ||
| + | |||
| + | Le logiciel est basé sur Forgejo ; vous trouverez la documentation officielle (en anglais) sur [[https:// | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | Nous avons précédement eu une forge basée sur Gitlab, dont les dépôts ont été transférés sur Forgejo (migration finie le 19/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Conditions d' | ||
| + | Le service est ouvert sur simple demande. À cause des robots spammeurs, nous ne pouvons pas laisser les gens s' | ||
| + | |||
| + | Avec un compte, vous pourrez créer des tickets et échanger sur ces derniers, ainsi que rejoindre la gestion de certains projets hébergés dans la forge. | ||
| + | |||
| + | Pour pouvoir avoir vos propres dépôts, il faut que nous sachions ce que vous voulez faire : | ||
| + | * Projet sous licence libre et public, pas de souci, allez-y. | ||
| + | * Projet sous une licence non libre et/ou privé : nous apprécions que vous nous prouviez votre participation aux Communs par ailleurs, par exemple en participant à d' | ||
| + | * Projet très demandeur en ressources (grosses CI par exemple) : informez-nous en amont de vos besoins, pour que nous adaptions les machines. Nous vous demanderons aussi, très probablement, | ||
| + | |||
| + | Par défaut, si vous êtes inscrit, nous vous laissons la possibilité de créer librement 10 projets, mais il peut y avoir une modération a posteriori si nous trouvons que vous abusez de nos services. Le mieux est donc de nous avertir lorsque vous créez un projet. | ||
| + | |||
| + | Par défaut, nous vous réservons 5Go de stockage. Si vous avez besoin de plus sur la Forge, demandez-nous. | ||
| + | |||
| + | ===== Pour les utilisateurs de base ===== | ||
| + | <WRAP center round todo 60%> | ||
| + | Explication pour les noobs, à compléter, afin que même quelqu' | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Pour les utilisateurs avancés ===== | ||
| + | ==== Transférer un dépôt depuis Gitlab ==== | ||
| + | Aller sur le menu " | ||
| + | |||
| + | Ici une particularité sur l'URL à renseigner : il ne s'agit pas de l'url pour gérer votre projet (du type '' | ||
| + | |||
| + | Pour le reste, ça devrait aller tout seul, Forgejo pointe la doc de Gitlab sur comment se créer un jeton d' | ||
| + | ===== Pour les administrateurs de Numenaute ===== | ||
| + | ==== Installation ==== | ||
| + | Notes un peu en vrac, ça suffira pour retrouver le fil conducteur. | ||
| + | |||
| + | Dépendances : | ||
| + | sudo apt install git git-lfs gpg | ||
| + | |||
| + | Ajout de l' | ||
| + | sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' | ||
| + | --group --disabled-password --home / | ||
| + | |||
| + | Puis installer le binaire en suivant ce tutoriel : [[https:// | ||
| + | sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' | ||
| + | --group --disabled-password --home / | ||
| + | |||
| + | Créations des dossiers | ||
| + | sudo mkdir / | ||
| + | sudo chown git:git / | ||
| + | |||
| + | Dossiers custom: | ||
| + | sudo -u git mkdir / | ||
| + | sudo -u git mkdir / | ||
| + | sudo -u git mkdir / | ||
| + | sudo -u git mkdir / | ||
| + | |||
| + | ==== Personnalisation ==== | ||
| + | Le fichier de configuration est ''/ | ||
| + | |||
| + | === Thème et pages personnalisées === | ||
| + | Documentation officielle : | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | Les fichiers sont à mettre dans ''/ | ||
| + | |||
| + | À l' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Les fichiers de template sont dans https:// | ||
| + | |||
| + | == Ajout d' | ||
| + | Source : https:// | ||
| + | |||
| + | Pour par exemple ajouter un lien vers les mentions légales, j'ai créé le fichier ''/ | ||
| + | < | ||
| + | |||
| + | Pour trouver les bonnes balises html, le plus simple est sans doute d' | ||
| + | |||
| + | == CSS et thèmes == | ||
| + | Les thèmes officiels de Forgejo sont [[https:// | ||
| + | |||
| + | Il faut par contre ensuite déclarer la liste des thèmes possibles dans ''/ | ||
| + | |||
| + | <code ini / | ||
| + | DEFAULT_THEME: | ||
| + | THEMES = forgejo-auto, | ||
| + | </ | ||
| + | |||
| + | == Textes et traduction == | ||
| + | Faudra bidouiller https:// | ||
| + | |||
| + | Souci : il n'est pas possible de seulement ajouter ses modifs. Il faut copier tout le fichier et ajouter des modifications dedans... | ||
| + | |||
| + | Donc pour le moment j'ai changé la page " | ||
| + | |||
| + | |||
| + | == Modification de la page d' | ||
| + | J'ai créé ''/ | ||
| + | |||
| + | ==== Upgrade ==== | ||
| + | Vérifier s'il y a les fichiers de configuration à changer avant tout. | ||
| + | === Upgrade simple === | ||
| + | wget https:// | ||
| + | chmod +x forgejo-1.*.*-*-linux-amd64 | ||
| + | sudo service forgejo stop | ||
| + | sudo cp forgejo-1.*.*-*-linux-amd64 / | ||
| + | sudo chmod 755 / | ||
| + | sudo service forgejo start | ||
| + | |||
| + | === Upgrade complexe === | ||
| + | |||
| + | page à check : https:// | ||
| + | |||
| + | |||
| + | ==== Gestion des badbot ==== | ||
| + | Y'a des bots malpolis sur le web... Sur Forgejo, leur impact peut être vraiment gênant. | ||
| + | |||
| + | === Remplissage des archives === | ||
| + | Lorsque quelqu' | ||
| + | |||
| + | <code ini / | ||
| + | ARCHIVE_RETENTION_DAYS = 1</ | ||
| + | |||
| + | On peut évidement mettre plus si on a réglé le souci des badbots, parce que générer les archives prends aussi un peu de puissance sur le serveur (donc " | ||
| + | |||
| + | Redémarrer le service : | ||
| + | sudo systemctl restart forgejo | ||
| + | |||
| + | === Bannir les vilains via nftables et Fail2ban === | ||
| + | <WRAP center round tip 60%> | ||
| + | Si le proxy gère les accès, cela se paramètre sur le proxy. | ||
| + | </ | ||
| + | Configuration de nftables : | ||
| + | <code bash / | ||
| + | table inet filter { | ||
| + | # création du set où les vilaines ip seront notées | ||
| + | set bad_ips { | ||
| + | type ipv4_addr; | ||
| + | flags dynamic; | ||
| + | timeout 24h; | ||
| + | } | ||
| + | |||
| + | chain input { | ||
| + | type filter hook input priority 0; policy accept; | ||
| + | # action sur ces vilaines ip : les balancer dans le vide | ||
| + | ip saddr @bad_ips drop; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Recharger nftables : | ||
| + | sudo nft -f / | ||
| + | Pour bloquer une ip suspecte qu'on n'a pas encore " | ||
| + | sudo nft add element inet filter bad_ips { xx.xxx.xxx.xxx } | ||
| + | |||
| + | Voir les IPs bannies : | ||
| + | sudo nft list set inet filter bad_ips | ||
| + | |||
| + | Débloquer une IP : | ||
| + | sudo nft delete element inet filter bad_ips { xx.xxx.xxx.xxx } | ||
| + | |||
| + | |||
| + | |||
| + | Puis on installe Fail2Ban et on le paramètre avec ces deux fichiers | ||
| + | <code bash / | ||
| + | [Definition] | ||
| + | failregex = ^< | ||
| + | ignoreregex = | ||
| + | </ | ||
| + | |||
| + | |||
| + | <code bash / | ||
| + | [DEFAULT] | ||
| + | maxRetry = 4 | ||
| + | findtime = 3h | ||
| + | bantime = 3d | ||
| + | banaction = nftables-multiport | ||
| + | |||
| + | [nginx-runner] | ||
| + | enabled = true | ||
| + | filter = nginx-runner | ||
| + | port = http,https | ||
| + | logpath = / | ||
| + | maxretry = 1 | ||
| + | findtime = 600 | ||
| + | bantime = 86400 | ||
| + | banaction = nftables-multiport | ||
| + | </ | ||
| + | |||
| + | Et on active le service : | ||
| + | sudo systemctl enable fail2ban | ||
| + | sudo systemctl restart fail2ban | ||
| + | |||
| + | Pour voir quelles ips sont dans la jail : | ||
| + | sudo fail2ban-client status nginx-runner | ||
| + | |||
| + | =====RUNNER===== | ||
| + | ====Installation==== | ||
| + | Source: https:// | ||
| + | ===Dépendance=== | ||
| + | apt install wget | ||
| + | |||
| + | Installation de Docker: | ||
| + | |||
| + | Source: https:// | ||
| + | |||
| + | Ajoute la Clé GPG: | ||
| + | sudo apt update | ||
| + | sudo apt install ca-certificates curl | ||
| + | sudo install -m 0755 -d / | ||
| + | sudo curl -fsSL https:// | ||
| + | sudo chmod a+r / | ||
| + | |||
| + | Ajouter les sources: | ||
| + | echo \ | ||
| + | "deb [arch=$(dpkg --print-architecture) signed-by=/ | ||
| + | $(. / | ||
| + | sudo tee / | ||
| + | |||
| + | Installer Docker: | ||
| + | sudo apt update | ||
| + | sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin | ||
| + | ===Config Daemon=== | ||
| + | |||
| + | Fichier Daemon: | ||
| + | [Unit] | ||
| + | Description=Forgejo Runner | ||
| + | Documentation=https:// | ||
| + | After=docker.service | ||
| + | | ||
| + | [Service] | ||
| + | ExecStart=forgejo-runner daemon --config / | ||
| + | ExecReload=/ | ||
| + | | ||
| + | # This user and working directory must already exist | ||
| + | User=runner | ||
| + | WorkingDirectory=/ | ||
| + | Restart=on-failure | ||
| + | TimeoutSec=0 | ||
| + | RestartSec=10 | ||
| + | | ||
| + | [Install] | ||
| + | |||
| + | Reload le systemd: | ||
| + | sudo systemctl daemon-reload | ||
| + | |||
| + | ===Télécharger et Installer=== | ||
| + | Télécharger: | ||
| + | export RUNNER_VERSION=$(curl -X ' | ||
| + | wget -O forgejo-runner https:// | ||
| + | chmod +x forgejo-runner | ||
| + | wget -O forgejo-runner.asc https:// | ||
| + | gpg --keyserver keys.openpgp.org --recv EB114F5E6C0DC2BCDD183550A4B61A2DC5923710 | ||
| + | gpg --verify forgejo-runner.asc forgejo-runner | ||
| + | |||
| + | Installer: | ||
| + | sudo cp forgejo-runner / | ||
| + | |||
| + | Configurer le Home: | ||
| + | useradd --create-home runner | ||
| + | usermod -aG docker runner | ||
| + | |||
| + | Configurer les dossiers dans le home: | ||
| + | sudo su - runner | ||
| + | |||
| + | mkdir -p data | ||
| + | touch data/ | ||
| + | mkdir -p data/.cache | ||
| + | |||
| + | chown -R 1001:1001 data/ | ||
| + | chown -R 1001:1001 data/.cache | ||
| + | chmod 775 data/ | ||
| + | chmod 775 data/.cache | ||
| + | chmod g+s data/ | ||
| + | chmod g+s data/.cache | ||
| + | |||
| + | Enregistrer le Runner: | ||
| + | sudo -u runner forgejo-runner register | ||
| + | |||
| + | |||
| + | Démarrer le Runner: | ||
| + | sudo service forgejo-runner start | ||
| + | ====Update==== | ||
| + | |||
| + | export RUNNER_VERSION=$(curl -X ' | ||
| + | wget -O forgejo-runner https:// | ||
| + | sudo service forgejo-runner stop | ||
| + | sudo chmod +x forgejo-runner | ||
| + | sudo cp forgejo-runner / | ||
| + | sudo service forgejo-runner start | ||
| + | |||
| + | |||
| + | |||
| + | {{tag> | ||