Outils pour utilisateurs

Outils du site


benevoles:technique:yunohost_mutu

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
benevoles:technique:yunohost_mutu [2024/01/14 12:48] – [Diminuer la taille de la base de donnée] gauthier67benevoles:technique:yunohost_mutu [2024/04/16 10:39] (Version actuelle) scapharnaum
Ligne 49: Ligne 49:
    * Toute demande de service réalisée depuis l'espace adhérent de COIN ([https://adherents.arn-fai.net)](https://adherents.arn-fai.net)) est catégorisé dans la section "Services>Demandes" dans l'administration de COIN ([https://adherents.arn-fai.net/admin)](https://adherents.arn-fai.net/admin))    * Toute demande de service réalisée depuis l'espace adhérent de COIN ([https://adherents.arn-fai.net)](https://adherents.arn-fai.net)) est catégorisé dans la section "Services>Demandes" dans l'administration de COIN ([https://adherents.arn-fai.net/admin)](https://adherents.arn-fai.net/admin))
    * Une notification est envoyée sur le Forum "Nouvelle demande de *** pour un compte sans-nuage" avec un lien de la requête dans l'administration de COIN.    * Une notification est envoyée sur le Forum "Nouvelle demande de *** pour un compte sans-nuage" avec un lien de la requête dans l'administration de COIN.
-   * BUG : **Le lien de la requête n'est pas cliquable" sur le forum car retour à la ligne.+   * **BUG** : **Le lien de la requête n'est pas cliquable" sur le forum car retour à la ligne.
    * Cliquer sur "Accepter"    * Cliquer sur "Accepter"
-   * BUG : quand on valide un sous-compte Asso, par défaut le compte prends le nom du groupe+   * **BUG** : quand on valide un sous-compte Asso, par défaut le compte prends le nom du groupe
    * FEATURE REQUEST : "Accepter \& Provisionner" n'est pas encore fonctionnel car il faut d'abord vérifier que le pseudo est correct. Feature 1) : demander ET VERIFIER (règle des comptes yunohost) le pseudo du compte sans-nuage dans le formulaire de création du service. Dans le cas des abonnements asso supplémentaires, pour l'instant c'est le nom de l'asso nom\_asso qui est ajouté. Dans le cas d'un abonnement asso principal, c'est nom\_asso\_admin. Feature 2) : demander le Nom Complet (Prénom Nom) du compte supplémentaire pour qu'il soit correctement renseigné dans le compte YunoHost.    * FEATURE REQUEST : "Accepter \& Provisionner" n'est pas encore fonctionnel car il faut d'abord vérifier que le pseudo est correct. Feature 1) : demander ET VERIFIER (règle des comptes yunohost) le pseudo du compte sans-nuage dans le formulaire de création du service. Dans le cas des abonnements asso supplémentaires, pour l'instant c'est le nom de l'asso nom\_asso qui est ajouté. Dans le cas d'un abonnement asso principal, c'est nom\_asso\_admin. Feature 2) : demander le Nom Complet (Prénom Nom) du compte supplémentaire pour qu'il soit correctement renseigné dans le compte YunoHost.
    * Quand la demande est acceptée, cela créé un abonnement, et démarre donc une facturation (généralement 0€/an, sauf pour le compte asso principal et compte famille supplémentaire).    * Quand la demande est acceptée, cela créé un abonnement, et démarre donc une facturation (généralement 0€/an, sauf pour le compte asso principal et compte famille supplémentaire).
Ligne 59: Ligne 59:
    * Vérifier les données, surtout que le pseudo ne comporte que des "lettres", des "chiffres" et éventuellement un "\_" (voir les règles des comptes YunoHost) puis cliquer sur "Provisionner"    * Vérifier les données, surtout que le pseudo ne comporte que des "lettres", des "chiffres" et éventuellement un "\_" (voir les règles des comptes YunoHost) puis cliquer sur "Provisionner"
        * Cela prend un peu de temps en raison d'un timeout qui attend la bonne exécution du script de création d'user dans le serveur sans-nuage.fr (YunoHost)        * Cela prend un peu de temps en raison d'un timeout qui attend la bonne exécution du script de création d'user dans le serveur sans-nuage.fr (YunoHost)
-       * BUG : Une erreur 504 peut survenir, le lien de redirection ne pointe pas vers le nouveau service provisionné mais vers une URL invalide. Peut-être parce-que le service n'est pas provisionné avant le timout.+       * **BUG** : Une erreur 504 peut survenir, le lien de redirection ne pointe pas vers le nouveau service provisionné mais vers une URL invalide. Peut-être parce-que le service n'est pas provisionné avant le timout.
    * Retourner dans la fiche du service ("Configurations>Comptes Externes") : Au bout de 5 minutes le service doit apparaître comme running (vert)    * Retourner dans la fiche du service ("Configurations>Comptes Externes") : Au bout de 5 minutes le service doit apparaître comme running (vert)
-   * BUG : le quota nextcloud n'est pas correctement configuré, il faut se rendre sur nextcloud pour le configuration. Voir prochaine section. +   * BUG : le quota nextcloud n'est pas correctement configuré, il faut se rendre sur nextcloud pour le configurer. Voir prochaine section. 
        * Pour corriger, il faut modifier la commande occ dans le script (post-install) de provisionnement de compte externe sur la VM de COIN (ext)        * Pour corriger, il faut modifier la commande occ dans le script (post-install) de provisionnement de compte externe sur la VM de COIN (ext)
    * FEATURE REQUEST : définir le quota automatiquement en fonction du type d'abonnement souscrit    * FEATURE REQUEST : définir le quota automatiquement en fonction du type d'abonnement souscrit
Ligne 79: Ligne 79:
  
 ### Modification de compte YunoHost et nom sur Nextcloud - Pistes de debug du provisionnement sans-nuage.fr  ### Modification de compte YunoHost et nom sur Nextcloud - Pistes de debug du provisionnement sans-nuage.fr 
-  * BUG : Si les utilisateurs modifient leur "Nom Complet" dans "Editer mon Profil" sur https://sans-nuage.fr/yunohost/sso/edit.html , celui-ci n'est pas répercuté sur Nextcloud+  * **BUG** : Si les utilisateurs modifient leur "Nom Complet" dans "Editer mon Profil" sur https://sans-nuage.fr/yunohost/sso/edit.html , celui-ci n'est pas répercuté sur Nextcloud
   * CONTOURNEMENT : Si un Admin modifie le compte YunoHost directement, comme ci-dessous, le nom est bien répercuté sur Nextcloud (grâce à une tâche Cron).   * CONTOURNEMENT : Si un Admin modifie le compte YunoHost directement, comme ci-dessous, le nom est bien répercuté sur Nextcloud (grâce à une tâche Cron).
    * se connecter au serveur sans-nuage.fr (interface administrateur YunoHost) [https://sans-nuage.fr/yunohost/admin/](https://sans-nuage.fr/yunohost/admin/)    * se connecter au serveur sans-nuage.fr (interface administrateur YunoHost) [https://sans-nuage.fr/yunohost/admin/](https://sans-nuage.fr/yunohost/admin/)
Ligne 179: Ligne 179:
 ==== Diminuer la taille de la base de donnée ==== ==== Diminuer la taille de la base de donnée ====
 Si vous avez un problème de taille de base de données etherpad: https://github.com/YunoHost-Apps/etherpad_mypads_ynh/issues/188 Si vous avez un problème de taille de base de données etherpad: https://github.com/YunoHost-Apps/etherpad_mypads_ynh/issues/188
 +
  
 ===== Matrix ===== ===== Matrix =====
 +==== Problème de mot de passe dans Element ====
 +
 +<markdown>
 +Une fois connecté sur Element, certaines opérations nécessitent de re-rentrer son mdp. Il semble que cette demande de mdp ne soit pas implémenté en CAS. Du coup le mdp échoue.
 +
 +Contournement :
 +* se connecter à synapse-admin, section User https://synadmin.sans-nuage.fr/#/users
 +* Sélectionner l'utilisateur > authentification unique
 +* Noter le pseudo, Supprimer CAS
 +* Dans "Adresse électronique" Ajouter adresse mail pseudo@sans-nuage.fr 
 +* Demander à l'utilisateur de reset son mdp
 +  * Mets toi en navigation privée sur firefox
 +  * va sur chat.sans-nuage.fr
 +  * cliques sur "mot de passe oublié ?"
 +  * via le mail reçu sur ta boite mail @sans-nuage.fr, définis le même mdp que ton compte sans-nuage.fr
 +  * Et là dans l'idéal tu remets le même MDP que ton MDP sans-nuage
 +* Remettre CAS avec le pseudo 
 +</markdown>
 ==== Nettoyer la base de données ==== ==== Nettoyer la base de données ====
  
Ligne 193: Ligne 212:
  
 Niveau 2 utilisation de l'API d'administration synadm Niveau 2 utilisation de l'API d'administration synadm
- +* Se connecter en tant que admin_ghentz pour avoir accès à l'API synadm ou configurer son propre path comme suit 
-* Ensuite aller dans votre client Element pour réupérer un jeton pour l'API synapse +* Ensuite aller dans votre client Element pour récupérer un jeton pour l'API synapse 
   * Tout en bas des paramètres, section `Aide et A propos` > `Advanced` > `jeton d'accès`   * Tout en bas des paramètres, section `Aide et A propos` > `Advanced` > `jeton d'accès`
-  +Ajouter les variables suivantes à votre path : 
 +```
 export SYNAPSE_HS=matrix.sans-nuage.fr export SYNAPSE_HS=matrix.sans-nuage.fr
-  344  export SYNAPSE_TOKEN= +export SYNAPSE_TOKEN=le_jeton_recupere 
-  345  synadm GET 'v2/users?name=bot' | jq+``` 
 + 
 +Opérations de nettoyage 
 +\c matrix_synapse 
 +copy (select room_id, count(*) as cnt from events group by room_id order by cnt desc) to '/tmp/rooms_to_clean' csv; 
 +SELECT room_id, stream_ordering, COUNT(event_id) AS c FROM events GROUP BY room_id, stream_ordering ORDER BY c DESC; 
 + 
 +SELECT nspname || '.' || relname AS "relation", 
 +    pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size" 
 +  FROM pg_class C 
 +  LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) 
 +  WHERE nspname NOT IN ('pg_catalog', 'information_schema'
 +    AND C.relkind <> 'i' 
 +    AND nspname !~ '^pg_toast' 
 +  ORDER BY pg_total_relation_size(C.oid) DESC 
 +  LIMIT 20; 
 + 
 +jq -r '.rooms | map(select(.creator == "@signalbot:sans-nuage.fr")) | .[].room_id' < rooms.json | xargs -ti $SHELL -ic 'synadm POST '"'"'v1/purge_history/{}'"'"' -d '"'"'{"purge_up_to_ts":'"$(date -d-365days +%s000)"'}'"'" 
 + 
 +jq -r '.rooms | map(select(.creator == "@whatsappbot:sans-nuage.fr")) | .[].room_id' < rooms.json | xargs -ti $SHELL -ic 'synadm POST '"'"'v1/purge_history/{}'"'"' -d '"'"'{"purge_up_to_ts":'"$(date -d-365days +%s000)"'}'"'" 
 + 
 +SELECT * FROM state_groups_state LIMIT 5; 
 +SELECT COUNT(*) as nb FROM state_groups_state LIMIT 5; 
 +SELECT COUNT(*) as nb FROM state_groups_state; 
 + 
 + 
 +REINDEX DATABASE CONCURRENTLY matrix_synapse; 
 +ou 
 +REINDEX DATABASE matrix_synapse; 
 + 
 +VACUUM  
 +ou 
 +VACUUM FULL; 
 +semblent avoir le même résultat 
 +\q 
 + 
 +Autres commandes utiles : 
 +``` 
 +su -c /usr/bin/psql postgres 
 +synadm GET 'v2/users?name=bot' | jq 
 +postgres=# SELECT pg_size_pretty( pg_database_size( 'matrix_synapse' ) ); 
 +``` 
 + 
 +full log 
 +``` 
 +122  synadm POST "v1/purge_media_cache?before_ts=$(date -d-60days +%s000)"                                           
 +  123  synadm POST "v1/purge_media_cache?before_ts=$(date -d-30days +%s000)"                                           
 +  124  df -h                                                                                                           
 +  125  synadm POST "v1/media/delete?before_ts=$(date -d-900days +%s000)"                                               
 +  126  df -h                                                                                                           
 +  127  synadm POST "v1/media/delete?before_ts=$(date -d-899days +%s000)"                                               
 +  128  df -h                                                                                                           
 +  129  synadm POST "v1/media/delete?before_ts=$(date -d-800days +%s000)"                                               
 +  130  df -h                                                                                                           
 +  131  synadm POST "v1/media/delete?before_ts=$(date -d-700days +%s000)"                                               
 +  132  df -h                                                                                                           
 +  133  synadm POST "v1/media/delete?before_ts=$(date -d-600days +%s000)"                                               
 +  134  df -h                                                                                                           
 +  135  synadm POST "v1/media/delete?before_ts=$(date -d-500days +%s000)"                                               
 +  136  df -h                                                                                                           
 +  137  synadm POST "v1/media/delete?before_ts=$(date -d-500days +%s000)"                                               
 +  138  df -h                                                                                                           
 +  139  synadm POST "v1/media/delete?before_ts=$(date -d-400days +%s000)"                                               
 +  140  synadm POST "v1/media/delete?before_ts=$(date -d-450days +%s000)"                                               
 +  141  synadm POST "v1/media/delete?before_ts=$(date -d-400days +%s000)"                                               
 +  142  df -h                                                                                                           
 +  143  synadm POST "v1/media/delete?before_ts=$(date -d-365days +%s000)"                                               
 +  144  df -h                                                                                                           
 +  145  synadm GET 'v1/rooms?limit=999999' > rooms.json                                                                 
 +  146  jq '.rooms | map(select(.joined_local_members == 0))' < rooms.json                                              
 +  147  nano rooms.json                                                                                                 
 +  148  jq '.rooms | map(select(.joined_local_members == 0)) | map(.state_events) | add' < rooms.json                   
 +  149  df -h                                                                                                           
 +  150  synadm GET 'v1/rooms?limit=500' > rooms.json                                                                    
 +  151  jq '.rooms | map(select(.joined_local_members == 0))' < rooms.json                                              
 +  152  synadm GET 'v1/rooms?limit=5000' > rooms.json                                                                   
 +  153  jq '.rooms | map(select(.joined_local_members == 0))' < rooms.json                                              
 +  154  synadm GET 'v1/rooms?limit=1000' > rooms.json                                                                   
 +  155  synadm GET 'v1/rooms?limit=2000' > rooms.json                                                                   
 +  156  synadm GET 'v1/rooms?limit=1000' > rooms.json                                                                   
 +  157  jq '.rooms | map(select(.joined_local_members == 0))' < rooms.json                                              
 +  158  nano rooms.json                                                                                                 
 +  159  jq -r '.rooms | map(select(.joined_local_members == 0)) | .[].room_id' < rooms.json | xargs -ti synadm DELETE ' 
 +v1/rooms/{}' -d '{"purge": true}'                                                                                      
 +  160  synadm POST "v1/purge_media_cache?before_ts=$(date -d-30days +%s000)"                                           
 +  161  nano rooms.json                                                                                                 
 +  162  sudo su                                                                                                         
 +  163  exit                                                                                                            
 +  164  tmux a                                                                                                          
 +  165  sudo su                                                                                                         
 +  166  df -h                                                                                                           
 +  167  lsblk                                                                                                           
 +  168  fdisk -l                                                                                                        
 +  169  sudo fdisk -l                                                                                                   
 +  170  dfc -Taisob  
 +  185  synadm GET 'v1/rooms?limit=999999' > rooms.json                                                                 
 +  186  jq '.rooms | map(select(.joined_local_members == 0)                                                             
 +  187  nano rooms.json                                                                                                 
 +  188  sudo su                                                                                                         
 +  189  synadm -o json room list -s joined_local_members -r -l 500 | jq -r '.rooms[] | select(.joined_local_members ==  
 +0) | .room_id'                                                                                                         
 +  190  synadm POST "v1/purge_media_cache?before_ts=$(date -d-30days +%s000)"                                           
 +  191  history | grep synadm                                                                                           
 +  192  synadm GET v2/users/@gauthier67:sans-nuage.fr | jq                                                              
 +  193  synadm GET 'v1/rooms?limit=500' > rooms.json                                                                    
 +  194  nano rooms.json                                                                                                 
 +  195  exit                                                                                                            
 +  196  tmux a 
 +  197  tmux 
 +  198  exit 
 +  199  sudo su 
 +  200  exit 
 +  201  sudo su 
 +  202  jq -r '.rooms | map(select(.joined_local_members == 0)) | .[].room_id' < rooms.json | xargs -ti synadm DELETE ' 
 +v1/rooms/{}' -d '{"purge": true}' 
 +  203  source .bashrc  
 +  204  jq -r '.rooms | map(select(.joined_local_members == 0)) | .[].room_id' < rooms.json | xargs -ti synadm DELETE ' 
 +v1/rooms/{}' -d '{"purge": true}' 
 +  205  nano .bashrc 
 +  206  source .bashrc  
 +  207  synadm GET v2/users/@gauthier67:sans-nuage.fr | jq 
 +   
 + 208  jq -r '.rooms | map(select(.joined_local_members == 0)) | .[].room_id' < rooms.json | xargs -ti synadm [0/1972] 
 +v1/rooms/{}' -d '{"purge": true}' 
 +  209  nano rooms.json  
 +  210  history | grep synadm 
 +  211  synadm POST "v1/media/delete?before_ts=$(date -d-365days +%s000)" 
 +  212  synadm POST "v1/media/delete?before_ts=$(date -d-465days +%s000)" 
 +  213  synadm POST "v1/media/delete?before_ts=$(date -d-365days +%s000)" 
 +  214  synadm POST "v1/media/delete?before_ts=$(date -d-400days +%s000)" 
 +  215  synadm POST "v1/media/delete?before_ts=$(date -d-430days +%s000)" 
 +  216  synadm POST "v1/media/delete?before_ts=$(date -d-400days +%s000)" 
 +  217  synadm POST "v1/media/delete?before_ts=$(date -d-365days +%s000)" 
 +  218  synadm POST "v1/purge_media_cache?before_ts=$(date -d-300days +%s000)" 
 +  219  synadm POST "v1/purge_media_cache?before_ts=$(date -d-200days +%s000)" 
 +  220  synadm POST "v1/purge_media_cache?before_ts=$(date -d-100days +%s000)" 
 +  221  synadm POST "v1/purge_media_cache?before_ts=$(date -d-150days +%s000)" 
 +  222  synadm POST "v1/purge_media_cache?before_ts=$(date -d-100days +%s000)" 
 +  223  synadm POST "v1/purge_media_cache?before_ts=$(date -d-70days +%s000)" 
 +  224  synadm POST "v1/purge_media_cache?before_ts=$(date -d-30days +%s000)" 
 +  225  synadm GET 'v1/rooms?limit=999999' > rooms.json 
 +  226  jq '.rooms | map(select(.joined_local_members == 0))' < rooms.json 
 +  227  jq '.rooms | map(select(.joined_local_members == 0)) | map(.state_events) | add' < rooms.json 
 +  228  jq -r '.rooms | map(select(.joined_local_members == 0)) | .[].room_id' < rooms.json | xargs -ti synadm DELETE ' 
 +v1/rooms/{}' -d '{"purge": true}' 
 +  229  xargs --help 
 +  230  jq -r '.rooms | map(select(.joined_local_members == 0)) | .[].room_id' < rooms.json | xargs -ti synadm DELETE ' 
 +v1/rooms/{}' -d '{"purge": true}' 
 +  231  history | grep psql 
 +  232  psql 
 +  233  synadm GET 'v1/rooms?limit=999999' > rooms.json 
 +  234  nano rooms.json  
 +  235  jq -r '.rooms | map(select(.joined_local_members == 0)) | .[].room_id' < rooms.json | xargs -ti $SHELL -ic "syn 
 +adm DELETE 'v1/rooms/{}' -d '{\"purge\": true}'" 
 +  236  nano /tmp/rooms_to_clean  
 +  237  head -n 20 /tmp/rooms_to_clean | cut -d, -f1 | xargs -ti $SHELL -ic 'synadm POST \'v1/purge_history/{}\' -d "{\ 
 +"purge_up_to_ts\":$(date -d-365days +%s000)}"' 
 + 
 +\q 
 +  238  head -n 20 /tmp/rooms_to_clean | cut -d, -f1 | xargs -ti $SHELL -ic 'synadm POST '"'"'v1/purge_history/{}'"'"'  
 +-d '"'"'{"purge_up_to_ts":'"$(date -d-30days +%s000)"'}'"'"  
 +  239  nano /tmp/rooms_to_clean  
 +  240  jq -r '.rooms | map(select(.creator == \"@whatsappbot:sans-nuage.fr\")) | .[].room_id' < rooms.json 
 +  241  jq -r '.rooms | map(select(.creator == "@whatsappbot:sans-nuage.fr")) | .[].room_id' < rooms.json 
 +  242  jq -r '.rooms | map(select(.creator == "@whatsappbot:sans-nuage.f")) | .[].room_id' < rooms.json 
 +  243  jq -r '.rooms | map(select(.creator == "@signalbot:sans-nuage.fr")) | .[].room_id' < rooms.json 
 +  244  jq -r '.rooms | map(select(.creator == "@whatsappbot:sans-nuage.fr")) | .[].room_id' < rooms.json | xargs -ti $ 
 +SHELL -ic 'synadm POST \'v1/purge_history/{}\' -d "{\"purge_up_to_ts\":$(date -d-365days +%s000)}"' 
 +  245  jq -r '.rooms | map(select(.creator == "@whatsappbot:sans-nuage.fr")) | .[].room_id' < rooms.json | xargs -ti $ 
 +SHELL -ic "synadm POST 'v1/purge_history/{}' -d '{"'"'"purge_up_to_ts"'"'":"'"'"$(date -d-365days +%s000)"'"'"}'" 
 +  246  jq -r '.rooms | map(select(.creator == "@whatsappbot:sans-nuage.fr")) | .[].room_id' < rooms.json | xargs -ti $ 
 +SHELL -ic 'synadm POST '"'"'v1/purge_history/{}'"'"' -d '"'"'{"purge_up_to_ts":'"$(date -d-365days +%s000)"'}'"'" 
 +  247  jq -r '.rooms | map(select(.creator == "@signalbot:sans-nuage.fr")) | .[].room_id' < rooms.json | xargs -ti $SH 
 +ELL -ic 'synadm POST '"'"'v1/purge_history/{}'"'"' -d '"'"'{"purge_up_to_ts":'"$(date -d-365days +%s000)"'}'"'"            
 +```
  
  
benevoles/technique/yunohost_mutu.1705232888.txt.gz · Dernière modification : 2024/01/14 12:48 de gauthier67