Outils pour utilisateurs

Outils du site


admin:services:forge.chapril.org

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
admin:services:forge.chapril.org [2021/04/11 22:01] – [Favicon] cpmadmin:services:forge.chapril.org [2024/01/28 01:25] (Version actuelle) – [Tâches récurrentes et modération] pilou
Ligne 231: Ligne 231:
 <code> <code>
 export GITEA_WORK_DIR=/srv/gitea export GITEA_WORK_DIR=/srv/gitea
-mkdir -p $GITEA_WORK_DIR/{custom,data} +mkdir -p $GITEA_WORK_DIR/{backups,bin,custom,data,repositories} 
-chown -R gitea:gitea $GITEA_WORK_DIR + 
-chmod -R ug+x $GITEA_WORK_DIR +chown root:gitea $GITEA_WORK_DIR 
-chmod -R o-rwx $GITEA_WORK_DIR+chown root:root $GITEA_WORK_DIR/{bin,custom
 +chown gitea:gitea $GITEA_WORK_DIR/{backups,data,repositories} 
 + 
 +chmod u=rwx,g=rx,o= $GITEA_WORK_DIR 
 +chmod u=rwx,g=rx,o=rx $GITEA_WORK_DIR/{bin,custom} 
 +chmod u=rwx,g=rx,o= $GITEA_WORK_DIR/{backups,data,repositories}
  
 mkdir /etc/gitea mkdir /etc/gitea
 chown root:gitea /etc/gitea chown root:gitea /etc/gitea
-chmod ug+rwx /etc/gitea +chmod ug=rwx /etc/gitea 
-chmod o-rwx /etc/gitea+chmod o/etc/gitea
  
 mkdir /var/log/gitea mkdir /var/log/gitea
Ligne 292: Ligne 297:
 Group=gitea Group=gitea
 WorkingDirectory=/srv/gitea WorkingDirectory=/srv/gitea
-ExecStart=/srv/gitea/bin/gitea web --config /etc/gitea/gitea.ini+ExecStart=/srv/gitea/bin/gitea --config /etc/gitea/gitea.ini web 
 +ExecStop=/srv/gitea/bin/gitea --config /etc/gitea/gitea.ini manager flush-queues 
 +ExecStop=/srv/gitea/bin/gitea --config /etc/gitea/gitea.ini manager shutdown
 Restart=always Restart=always
-Environment=USER=gitea HOME=/srv/gitea/ GITEA_WORK_DIR=/srv/gitea+Environment=USER=gitea HOME=/srv/gitea/
  
 [Install] [Install]
Ligne 353: Ligne 360:
 chmod g=r /etc/gitea/gitea.ini chmod g=r /etc/gitea/gitea.ini
 </code> </code>
-==== Paramétrage complémentaire ====+===== Paramétrages complémentaires =====
  
 Dans la page ''https://docs.gitea.io/en-us/config-cheat-sheet/'', des paramétrages affinés sont trouvables à faire dans ''/etc/gitea/gitea.ini''. Dans la page ''https://docs.gitea.io/en-us/config-cheat-sheet/'', des paramétrages affinés sont trouvables à faire dans ''/etc/gitea/gitea.ini''.
 +
 +==== section par défaut ===
 +
 +<code>
 +APP_NAME = La forge Chapril
 +RUN_USER = gitea
 +RUN_MODE = prod
 +WORK_PATH = /srv/gitea
 +</code>
 +==== base de données ====
 +
 +<code>
 +[database]
 +DB_TYPE  = postgres
 +HOST     = /run/postgresql
 +NAME     = giteadb
 +USER     = giteadbadmin
 +PASSWD   = [REDACTED]
 +SCHEMA   
 +SSL_MODE = disable
 +CHARSET  = utf8
 +</code>
 +
 +==== Désactivation des appels aux services externes ====
 +
 +<code>
 +[picture]
 +DISABLE_GRAVATAR        = true
 +ENABLE_FEDERATED_AVATAR = false
 +
 +[openid]
 +ENABLE_OPENID_SIGNIN = false
 +ENABLE_OPENID_SIGNUP = false
 +</code>
 +
  
  
Ligne 372: Ligne 414:
 <code> <code>
 [repository] [repository]
 +ROOT = /srv/gitea/repositories
 PREFERRED_LICENSES=AGPL-3.0-or-later,GPL-3.0-or-later,CC-BY-SA-4.0 PREFERRED_LICENSES=AGPL-3.0-or-later,GPL-3.0-or-later,CC-BY-SA-4.0
 </code> </code>
  
 +==== lfs ====
 +
 +<code>
 +[lfs]
 +PATH = /srv/gitea/data/lfs
 +</code>
  
 ==== Taille maximale de téléversement ==== ==== Taille maximale de téléversement ====
Ligne 398: Ligne 447:
 [attachment] [attachment]
 ; Max size of each file. Defaults to 4MB ; Max size of each file. Defaults to 4MB
-MAX_SIZE = 20+MAX_SIZE = 50 
 +</code> 
 + 
 +==== sections session et log ==== 
 +<code> 
 +[session] 
 +PROVIDER = file 
 + 
 +[log] 
 +MODE      = file 
 +LEVEL     = info 
 +ROOT_PATH = /var/log/gitea/ 
 +</code> 
 + 
 +==== Désactiver l'ensemble des dépôts d'objets binaires ==== 
 + 
 +<code> 
 +[packages] 
 +; Enable/Disable package registry capabilities 
 +ENABLED = false
 </code> </code>
 ===== Personnalisation ===== ===== Personnalisation =====
Ligne 404: Ligne 472:
 Basée sur la page https://docs.gitea.io/en-us/customizing-gitea/ Basée sur la page https://docs.gitea.io/en-us/customizing-gitea/
  
 +Le dossier ''root@grof:/srv/gitea/custom'' est un [[https://forge.april.org/Chapril/forge.chapril.org-custom|dépôt git]].
 +Le but est d'avoir un suivi des modifications.
 ==== Page d'accueil ==== ==== Page d'accueil ====
  
Ligne 422: Ligne 492:
 mkdir -p /srv/gitea/custom/templates mkdir -p /srv/gitea/custom/templates
 cd /srv/gitea/custom/templates cd /srv/gitea/custom/templates
-wget https://raw.githubusercontent.com/go-gitea/gitea/v1.12.5/templates/home.tmpl+wget https://raw.githubusercontent.com/go-gitea/gitea/v1.14.0/templates/home.tmpl
 </code> </code>
  
 Appliquer les changements suivants : Appliquer les changements suivants :
 <code> <code>
-=(^-^)=root@grof:/srv/gitea/custom/templates# diff home.tmpl home.tmpl.ori  +=(^-^)=root@grof:/srv/gitea/custom/templates# diff home.tmpl-1.14.0 home.tmpl 
-2d1 +1a2,7 
-<style type="text/css">.home .hero .svg { color: #1c79c5 !important; }</style> +<style type="text/css"
-7c6 +> .home .hero .svg {color: #1c79c5 !important;} 
-<                               <img class="logo" src="{{StaticUrlPrefix}}/logo-forgechaprilorg.png" />+> .ui.icon.header svg {width: 40px !important; height: 40px !important; display: inline !important; vertical-align: middle !important; margin-right: 5px;} 
 +> .hero {font-weight: bold !important;
 +> .full.height {padding-bottom : 10px !important; } 
 +</style> 
 +6c12 
 +<                               <img class="logo" width="220" height="220" src="{{StaticUrlPrefix}}/img/logo.svg"/>
 --- ---
->                               <img class="logo" src="{{StaticUrlPrefix}}/img/gitea-lg.png" /> +>                               <img class="logo" width="220" height="136" src="{{StaticUrlPrefix}}/logo-forgechaprilorg.png"/> 
-13,14c12 +12c18 
-<                               <h2>Plateforme collaborative de dépôts de logiciels, ressources et contributions libres.</h2> +<                               <h2>{{.i18n.Tr "startpage.app_desc"}}</h2>
-<                               <!--p><a href="https://www.april.org/style="color: #005174"><img src="april-logo-gitea.png/></a>.</p-->+
 --- ---
->                               <h2>{{.i18n.Tr "startpage.app_desc"}}</h2> +>                               <h2>Plateforme collaborative de contributions libres.</h2> 
-21c19 +19c25 
-<                               {{svg "octicon-flame" 16}} Qui peut avoir un compte ?+<                               {{svg "octicon-flame"}} {{.i18n.Tr "startpage.install"}}
 --- ---
->                               {{svg "octicon-flame" 16}} {{.i18n.Tr "startpage.install"}} +>                               {{svg "octicon-flame"}} Qui peut avoir un compte ? 
-24c22 +22c28 
-<                               Tout le monde, cette instance est ouverte au public.+<                               {{.i18n.Tr "startpage.install_desc| Str2html}}
 --- ---
->                               {{.i18n.Tr "startpage.install_desc" | Str2html}} +>                               Tout le monde, cette instance est ouverte au public
-29c27 +27c33 
-<                               {{svg "octicon-device-desktop" 16}} Quels dépôts sont acceptés ?+<                               {{svg "octicon-device-desktop"}} {{.i18n.Tr "startpage.platform"}}
 --- ---
->                               {{svg "octicon-device-desktop" 16}} {{.i18n.Tr "startpage.platform"}} +>                               {{svg "octicon-device-desktop"}} Quels contenus sont acceptés ? 
-32c30 +30c36 
-<                               La forge Chapril accueille tout dépôt dont le contenu est sous licence libre.+<                               {{.i18n.Tr "startpage.platform_desc| Str2html}}
 --- ---
->                               {{.i18n.Tr "startpage.platform_desc" | Str2html}} +>                               La forge Chapril accueille tout type de contenu tel que code source, documentation, graphique, artistique, littéraire, etc
-39c37 +37c43 
-<                               {{svg "octicon-rocket" 16}} Comment créer un compte ?+<                               {{svg "octicon-rocket"}} {{.i18n.Tr "startpage.lightweight"}}
 --- ---
->                               {{svg "octicon-rocket" 16}} {{.i18n.Tr "startpage.lightweight"}} +>                               {{svg "octicon-rocket"}} Comment créer un compte ? 
-42c40 +40c46 
-<                               La création de compte se fait par une procédure d'inscription classique.+<                               {{.i18n.Tr "startpage.lightweight_desc| Str2html}}
 --- ---
->                               {{.i18n.Tr "startpage.lightweight_desc" | Str2html}} +>                               La création de compte se fait par une procédure d'inscription classique
-47c45 +45c51 
-<                               {{svg "octicon-code" 16}} Licences libres+<                               {{svg "octicon-code"}} {{.i18n.Tr "startpage.license"}}
 --- ---
->                               {{svg "octicon-code" 16}} {{.i18n.Tr "startpage.license"}} +>                               {{svg "octicon-code"}} Licences libres 
-50c48 +48c54,55 
-<                               Tous les dépôts présents sur cette forge sont sous licences libres.+<                               {{.i18n.Tr "startpage.license_desc| Str2html}}
 --- ---
->                               {{.i18n.Tr "startpage.license_desc| Str2html}}+>                               Tous les dépôts présents sur cette forge sont sous <b>licences libres</b>, au sens de la Free Software Foundation à l'exception des licences Creative Commons en ND ou NC qui sont exclues.<br/> 
 +>                               <a href="https://www.chapril.org/cgu.html#forgechaprilorg-cpu">Consulter les Conditions particulières d'utilisation</a>.
 </code> </code>
  
Ligne 490: Ligne 565:
 chmod go+r *png chmod go+r *png
 systemctl restart gitea systemctl restart gitea
 +</code>
 +
 +Télécharger la page de code au bon endroit :
 +<code>
 +mkdir -p /srv/gitea/custom/templates/base
 +cd /srv/gitea/custom/templates/base
 +wget https://raw.githubusercontent.com/go-gitea/gitea/release/v1.14/templates/base/head_navbar.tmpl
 +</code>
 +
 +La personnaliser :
 +<code>
 +=(^-^)=root@grof:/srv/gitea/custom/templates/base# diff head_navbar.tmpl-1.14.0 head_navbar.tmpl
 +4c4
 +<                       <img class="ui mini image" with="30" height="30" src="{{StaticUrlPrefix}}/img/logo.svg">
 +---
 +>                       <img class="ui mini image" with="30" height="30" src="{{StaticUrlPrefix}}/img/gitea-sm.png">
 </code> </code>
  
Ligne 506: Ligne 597:
 mv favicon-forgechaprilorg.png favicon.png mv favicon-forgechaprilorg.png favicon.png
 wget https://admin.chapril.org/lib/exe/fetch.php?media=admin:services:favicon-forgechaprilorg.svg wget https://admin.chapril.org/lib/exe/fetch.php?media=admin:services:favicon-forgechaprilorg.svg
-mv favicon-forgechaprilorg.svg favicon.svg+mv favicon-forgechaprilorg.svg logo.svg
 wget https://admin.chapril.org/lib/exe/fetch.php?media=admin:services:logo-forgechaprilorg02.png wget https://admin.chapril.org/lib/exe/fetch.php?media=admin:services:logo-forgechaprilorg02.png
 mv logo-forgechaprilorg02.png gitea-lg.png mv logo-forgechaprilorg02.png gitea-lg.png
 chmod go+r *png *svg chmod go+r *png *svg
 +ln -s logo.svg favicon.svg
 systemctl restart gitea systemctl restart gitea
 </code> </code>
Ligne 525: Ligne 617:
 Notamment, vous vous engagez à ce que tous les contenus de vos dépôts soient sous <a href="https://www.gnu.org/licenses/license-list.fr.html">licence libre</a>, au sens de la Free Software Foundation. Notamment, vous vous engagez à ce que tous les contenus de vos dépôts soient sous <a href="https://www.gnu.org/licenses/license-list.fr.html">licence libre</a>, au sens de la Free Software Foundation.
 </div> </div>
-{{template "user/auth/signup_inner" .}}+<div class="page-content user signin{{if .LinkAccountMode}} icon{{end}}"> 
 +        <div class="ui middle very relaxed page grid"> 
 +                {{template "user/auth/signup_inner" .}} 
 +        </div> 
 +</div>
 {{template "base/footer" .}} {{template "base/footer" .}}
 </code> </code>
Ligne 618: Ligne 714:
   * la documentation officielle de Gitea contient une page sur les backups : ''https://docs.gitea.io/en-us/backup-and-restore/''.   * 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 peut consister à : +Ajouter une mise à jour planifiée sur https://status.chapril.org/dashboard/schedule en utilisant le modèle prévu à cet effet. 
-  * définir dans une variable le numéro de la nouvelle version : + 
-<code>+Donc la procédure de mise à jour peut consister, en utilisant un multiplexeur de terminal, à : 
 +  * définir dans une variable le numéro de la nouvelle version :<code bash>
 export VERSION=1.X.Y export VERSION=1.X.Y
 </code> </code>
-  * récupérer la dernière version sur ''https://dl.gitea.io/gitea'' et faire un ''sha256sum -c'' : +  * Lancer [[https://forge.april.org/Chapril/forge.chapril.org-tools/src/branch/master/upgrade.sh|le script de mise à jour]]:<code bash
-<code> +/srv/forge.chapril.org/tools/upgrade.sh verify download 
-cd /srv/gitea/bin +/srv/forge.chapril.org/tools/upgrade.sh stop backup 
-wget https://dl.gitea.io/gitea/$VERSION/gitea-$VERSION-linux-amd64 +/srv/forge.chapril.org/tools/upgrade.sh check 
-wget https://dl.gitea.io/gitea/$VERSION/gitea-$VERSION-linux-amd64.asc +# corriger les éventuels problèmes 
-wget https://dl.gitea.io/gitea/$VERSION/gitea-$VERSION-linux-amd64.sha256 +/srv/forge.chapril.org/tools/upgrade.sh upgrade 
-sha256sum -c gitea-$VERSION-linux-amd64.sha256 +# être attentif aux éventuels problèmes 
-# gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2 +/srv/forge.chapril.org/tools/upgrade.sh start
-gpg --verify gitea-$VERSION-linux-amd64.asc gitea-$VERSION-linux-amd64+
 </code> </code>
-  * stopper : +  * surveiller les logs :<code bash>
-<code> +
-systemctl stop gitea +
-</code> +
-  * dumper : +
-<code> +
-su - gitea -c "cd /srv/gitea/bin ; /srv/gitea/bin/gitea dump --tempdir /var/tmp/ -c /etc/gitea/gitea.ini" +
-</code> +
-  * archiver le binaire courant ''/srv/gitea/bin/gitea''+
-<code> +
-mv gitea gitea.old +
-</code> +
-  * remplacer le binaire ''/srv/gitea/bin/gitea''+
-<code> +
-mv gitea-$VERSION-linux-amd64 gitea +
-</code> +
-  * mettre les bons droits : +
-<code> +
-cd /srv/gitea/bin/ +
-chown gitea.gitea gitea +
-chmod u+x gitea +
-</code> +
-  * démarrer : +
-<code> +
-systemctl start gitea +
-</code> +
-  * surveiller les logs : +
-<code>+
 tail -f /var/log/gitea/gitea.log tail -f /var/log/gitea/gitea.log
 +tail -f /var/log/apache2/forge.chapril.org/forge.chapril.org-error.log
 </code> </code>
-  * supprimer manuellement l'ancien dump.+  * supprimer manuellement l'ancien dump 
 +  * vérifier que les personnalisations ne sont pas cassées :  
 +    * https://forge.chapril.org/ sans être authentifié 
 +      * vérifier la présence de la bannière Chapril avec notamment les liens ''Accueil Chapril'', ''CGU'', ''Mentions légales'' et le logo de l'April 
 +      * logo (bleu, un profil de chat dans la tasse) 
 +      * Chercher le texte ''La forge Chapril'' dans la page 
 +      * favicon identique au logo 
 +      * vérifier qu'il y a un lien ''Help''/''Aide'' dans le pied de page à gauche de la version de Go* 
 +      * vérifier la présence des liens ''Help''/''Aide'' et ''support'' dans la barre de navigation supérieure, à droite de ''explore'' 
 +    * https://forge.chapril.org/user/sign_up 
 +      * petit encart jaune ''En créant un compte, vous acceptez ...'' 
 +      * logo a gauche de la barre de navigation 
 +    * Enregistrer un compte pour vérifier que le courriel d'activation d'un compte est en français 
 +    * en étant authentifié: 
 +      * vérifier la présence des liens ''Help''/''Aide'' et ''support'' dans la barre de navigation supérieure, à droite de ''explore'' 
 +===== Procédure de restauration ===== 
 + 
 +Il n'existe pas de commande gitea pour restaurer une sauvegarde ([[https://docs.gitea.io/en-us/backup-and-restore/#restore-command-restore|mais la documentation mentionne un ensemble de commandes]]), il faut décompresser la sauvegarde et copier les différents éléments: 
 +  * le fichier de configuration ''app.ini'' 
 +  * les données, les logs, les dépôts 
 +  * la base de données 
 + 
 +===== Tâches récurrentes et modération ===== 
 + 
 +En plus de la mise à jour du service décrite précédemment, l'administration de la forge nécessite de réaliser deux autres [[https://agir.april.org/projects/forge-chapril-org/issues?f[]=tracker_id&op[tracker_id]=%3D&v[tracker_id][]=3|tâches récurrentes]] qui sont des actions de modération: 
 + 
 +  * modération des comptes: suppression sans préavis ni avertissement des comptes créés par des robots 
 +    * Pour connaître l'IP utilisée lors de la création d'un compte: 
 +       - Via l'interface d'administration, notez la date et l'heure de la création du compte 
 +       - Puis recherchez la date et l'heure dans les logs: ''journalctl -u gitea -S -1w -g 'POST[^/]+/user/sign_up''' 
 +  * Trouver les comptes récemment créés et actifs (afin de supprimer les nouvelles issues crées par les spammeurs) (pour [[https://forge.chapril.org/user/settings/applications|créer un token]]): 
 +    <code>for x in $(curl  -H "Authorization: token $token" https://forge.chapril.org/api/v1/admin/users | jq -r '.[] | select(.id > 3100) | select(.id | IN(3394, 3288, 3271, 3132) | not) | .login'); do test $(curl  -sH "Authorization: token $token" https://forge.chapril.org/api/v1/users/$x/activities/feeds | jq 'map(select(.op_type | IN("comment_issue", "create_issue")))| length') -ne 0 && echo https://forge.chapril.org/$x?tab=activity ; done</code> 
 +  * Supprimer un range : 
 +      <code>for x in $(curl  -H "Authorization: token $token" https://forge.chapril.org/api/v1/admin/users | jq -r '(.[] | select(.id > 3330)) | select(.id < 3394)| .login'); do curl  -H "Authorization: token $token" -X DELETE -H "Content-Type: application/json" https://forge.chapril.org/api/v1/admin/users/$x?delete=true ; done</code> 
 +  * Sélection des comptes récents contenant des liens en description : 
 +      <code>for x in $(curl  -H "Authorization: token $token" https://forge.chapril.org/api/v1/admin/users | jq -r '.[] | select(.id > 3100) | .login'); do clear; curl -sH "Authorization: token $token" https://forge.chapril.org/api/v1/users/$x | jq -er 'select(.website != "" or (.description | test("http"))) | .login + "\n" + .website + .description + "\n"' && (read -e -p "Delete ? " delete; [[ "$delete" == [Yy]* ]] && curl  -H "Authorization: token $token" -X DELETE -H "Content-Type: application/json" https://forge.chapril.org/api/v1/admin/users/$x?purge=true && echo -e "deleted\n"); done</code> 
 +  * modération des dépôts: en cas d'absence de licence ou de licence non conforme aux CGU, envoi d'un mail à l'utilisateur et suppression si au bout de 15 jours celui-ci ne s'est pas mis pas en conformité avec les CGU.
admin/services/forge.chapril.org.1618178489.txt.gz · Dernière modification : 2021/04/11 22:01 de cpm