Outils pour utilisateurs

Outils du site


admin:services:mobilizon.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:mobilizon.chapril.org [2021/06/20 16:17] – [Migrer le backend de mobilizon] tykaynadmin:services:mobilizon.chapril.org [2023/01/07 17:54] (Version actuelle) – Lancement local du serveur sagotgej
Ligne 2: Ligne 2:
 Un logiciel fédéré pour organiser des évènements. Un logiciel fédéré pour organiser des évènements.
 [[https://mobilizon.chapril.org/]] [[https://mobilizon.chapril.org/]]
- 
-Anim'sys: 
-Philippe et Tykayn. 
  
 {{https://www.chapril.org/sites/v2.chapril.org/IMG/arton45.jpg|screenshot}} {{https://www.chapril.org/sites/v2.chapril.org/IMG/arton45.jpg|screenshot}}
 +
 +<nspages .:mobilizon.chapril.org: -simpleList -h1>
  
 ====== Ressources ====== ====== Ressources ======
Ligne 12: Ligne 11:
 Outils du Chapril : Outils du Chapril :
  
-  * [[https://icinga.chapril.org/icingaweb2/search?q=mobilizon|Suivi Icinga]] +    * [[https://icinga.chapril.org/icingaweb2/search?q=Mobilizon|Suivi Icinga]] 
-  * [[https://agir.april.org/projects/mobilizon-chapril-org/issues?set_filter=1&tracker_id=2|tickets en cours sur Agir]] +    * [[https://agir.april.org/projects/mobilizon-Chapril-org/issues?set_filter=1&tracker_id=2|tickets en cours sur Agir]]
  
 __Dépots sources utilisés :__ __Dépots sources utilisés :__
  
-  * Outils https://forge.april.org/Chapril/mobilizon.chapril.org-tools +    * Outils https://forge.april.org/Chapril/mobilizon.chapril.org-tools 
-  * Source de l'instance Chapril https://forge.april.org/Chapril/mobilizon.chapril.org-mobilizon +    * Source de l'instance Chapril https://forge.april.org/Chapril/mobilizon.chapril.org-Mobilizon 
-  * Dépot upstream: https://framagit.org/framasoft/mobilizon+    * Dépot upstream: https://framagit.org/framasoft/mobilizon
  
 +====== Installation ======
 +
 +<note warning>
 +**En travaux** La documentation de l'installation de Mobilizon est en cours de mise à jour pour mieux refléter l'installation réalisée par Chapril. La page 
 +[[admin:services:mobilizon.chapril.org:installation|Installation de mobilizon]] sera supprimée à l'issue de ce chantier.
 +</note>
 +
 +L'installation pas à pas est détaillée sur [[https://docs.joinMobilizon.org/administration/install/|la doc de joinMobilizon.org]]. Vous trouverez **ci-dessous les étapes d'installations spécifiques à Chapril**.
 +
 +===== Pré-requis =====
 +
 +    - Mobilizon doit être installé sur la VM Debian nommée **biliz.cluster.chapril.org** sur laquelle on dispose de l'accès root
 +    - Le domaine choisi pour le service Mobilizon est [[https://mobilizon.chapril.org/|mobilizon.chapril.org]]
 +    - L'envoi de mails depuis la VM est [[https://admin.chapril.org/admin/procedures/installation_postfix_satellite|réalisé en mode satellite]]
 +
 +===== Installation locale des dépendances =====
 +
 +L'ajout d'un thème au projet Mobilizon nécéssite l'installation depuis la [[https://framagit.org/framasoft/mobilizon/|source du projet]].
 +
 +Il a été décidé de **compiler le projet en local** (sur votre machine) avant de publier les binaires en production.
 +
 +==== Elixir ====
 +
 +Mobilizon utilise le [[https://elixir-lang.org/|langage de programmation Elixir]] côté serveur. Vous devez installer la **version 1.11 au minimum**. Il n'est pas possible d'utiliser la version fournie par Debian 11 (1.10.3) car nous avons besoin de fonctions introduites dans la version 1.11 d'Elixir, comme [[https://hexdocs.pm/elixir/main/Config.html#config_env/0|config_env]]
 +
 +Installons la dernière version de Elixir (1.14.1) depuis la source sur notre machine locale:
 +
 +    sudo apt install erlang build-essential curl unzip openssl git cmake file
 +    wget https://codeload.github.com/elixir-lang/elixir/tar.gz/refs/tags/v1.14.1 -O elixir-1.14.1.tar.gz
 +    tar zxf elixir-1.14.1.tar.gz
 +    cd elixir-1.14.1
 +    make -j$(nproc --ignore=1)
 +    sudo make install
 +
 +<note tip>
 +Si wget n'est pas déjà installé sur votre machine:
 +
 +    sudo apt install wget
 +</note>
 +
 +==== NodeJS ====
 +
 +La version 14 de NodeJS est requise. La version 12 est disponible dans Debian 11, c'est pourquoi nous allons installer la version LTS [[https://nodejs.org/en/|depuis le site officiel]]
 +
 +    wget https://nodejs.org/dist/v18.12.1/node-v18.12.1-linux-x64.tar.xz
 +    sudo tar --directory=/usr/local/ --strip-components=1 -Jxvf $PWD/node-v18.12.1-linux-x64.tar.xz
 +
 +=== Yarn ===
 +Mobilizon utilise le gestionnaire de dépendances [[https://yarnpkg.com/|Yarn]] au lieu de NPM (le défaut). Il faut donc installer Yarn via:
 +
 +    npm install -g yarn
 +
 +==== PostgreSQL ====
 +
 +PostgreSQL n'est pas requis pour la compilation de Mobilizon, mais avoir une base de données en local permet de tester l'application sur votre machine avant de la publier en production.
 +
 +L'extension [[https://postgis.net/|Postgis]] de PostgreSQL est requise afin de localiser les évènements de Mobilizon
 +
 +    sudo apt install postgresql postgresql-contrib
 +    sudo apt install --install-recommends postgis
 +    sudo systemctl start postgresql
 +
 +===== Compilation locale de Mobilizon =====
 +
 +Maintenant que nous avons installé localement toutes les dépendances, nous allons compiler puis tester Mobilizon. La première étape consiste à récupérer les sources du projet. Ici, nous installons la version 3.0.3:
 +
 +==== Récupération du code source ====
 +
 +<note important>Pour l'instant, on récupère le code source depuis le dépôt Framasoft. Une fois que le thème Chapril aura été appliqué au code source, il faudra récupérer le code source depuis la [[https://forge.april.org/Chapril/mobilizon.chapril.org-mobilizon.git|forge de l'April]]
 +</note>
 +
 +    git clone https://framagit.org/framasoft/mobilizon.git
 +    cd mobilizon
 +    git checkout 3.0.3
 +
 +
 +==== Compilation du serveur ====
 +
 +<note tip>
 +Lors du téléchargement des dépendances Elixir, mix va vous demander si vous souhaitez installer Hex et Rebar3. Répondez oui :-)
 +</note>
 +
 +    # Téléchargement des dépendances Elixir du projet
 +    mix deps.get
 +    # Compilation du serveur Mobilizon
 +    MIX_ENV=prod mix compile
 +
 +==== Compilation du client ====
 +
 +Nous allons nous rendre dans le répertoire js/ (situé dans le dossier du dépôt mobilizon clôné précédemment) pour installer les dépendances et compiler le client web
 +
 +    cd js
 +    yarn install
 +    yarn run build
 +    cd ..
 +
 +==== Test local de l'application Mobilizon ====
 +
 +Pour tester l'application Mobilizon qu'on vient de construire, il va nous falloir une configuration locale de Mobilizon et une base de données locale PostgreSQL.
 +
 +
 +=== Installation de PostgreSQL ===
 +
 +    sudo apt install postgresql postgresql-contrib
 +    sudo apt install --install-recommends postgis
 +    sudo systemctl --now enable postgresql
 +
 +=== Génération de la configuration locale de Mobilizon ===
 +
 +Commençons par générer la configuration locale avec le CLI de Mobilizon:
 +
 +    MIX_ENV=prod mix mobilizon.instance gen
 +
 +Indiquez ''localhost'' en tant qu'hôte, ''Test Mobilizon Local'' pour le nom d'instance et utilisez les paramètres par défaut pour le reste des paramètres.
 +
 +Cette commande a généré deux fichiers. Le premier, ''config/runtime.exs'' contient la configuration du serveur. On y trouve entre autres l'URL du serveur, le compte de l'utilisateur PostgreSQL, des informations sur l'instance, le compte mail.
 +
 +Le second fichier, ''setup_db.psql'' contient les instructions PostgreSQL pour créer la base de données et le compte PostgreSQL d'après les arguments passés à la commande ''mix mobilizon.instance gen''
 +
 +=== Création de l'utilisateur PostgreSQL pour mobilizon ===
 +
 +Lancer le script SQL généré lors de l'étape précédente avec l'utilisateur ''postgres'' (admin de la base de données PostgreSQL):
 +
 +    sudo -u postgres psql -f setup_db.psql
 +
 +=== Initialisation de la base de données Mobilizion ===
 +
 +Il faut maintenant initialiser le schéma de la base de données avec la commande suivante:
 +
 +    MIX_ENV=prod mix ecto.migrate
  
 +=== Lancement du serveur ===
  
-====== Documentation d'installation ====== +Tout est prêt pour pouvoir lancer localement le serveur localement:
-====== Installation de mobilizon ====== +
-Cette page concerne :[[admin:services:mobilizon.chapril.org|le service Mobilizon]]+
  
-copiée depuis la doc de joinmobilizon.org +    MIX_ENV=prod mix phx.server
-https://docs.joinmobilizon.org/administration/+
  
-Mobilizon est installée sur la VM biliz.cluster.chapril.org+Voici ce que vous devriez obtenir en ouvrant le site web ''localhost:4000'':
  
-== Pré-requis ==+{{:admin:services:mobilizon_instance_locale_test.png?direct&1920|}}
  
-    Une machine Linux avec accès à la racine +On a maintenant vérifié localement que tout fonctionne. Il faut dorénavant pousser le logiciel compilé vers le serveur ainsi que ses dépendances.
-    Un nom de domaine (ou sous-domaine) pour le serveur Mobilizon, par exemple votre-domaine-mobilizon.com +
-    Un serveur SMTP pour l'envoi de courriers électroniques+
  
-== Dépendances == +<note warning>Fin du nouveau manuel d'installation en travaux</note>
  
-Mobilizon nécessite entre autres Elixir, NodeJS et PostgreSQL. Préférez installer Elixir et NodeJS à partir de leurs dépôts officiels plutôt que les paquets de votre distribution.+Mobilizon nécessite entre autres Elixir, NodeJS et PostgreSQL. Préférez installer Elixir et NodeJS à partir de leurs 
 +dépôts officiels plutôt que les paquets de votre distribution.
  
 Versions recommandées : Versions recommandées :
Ligne 52: Ligne 177:
 https://github.com/nodesource/distributions/blob/master/README.md#table-of-contents https://github.com/nodesource/distributions/blob/master/README.md#table-of-contents
  
-<note important>Important +Nous allons utiliser un utilisateur de Mobilizon dédié avec /home/mobilizon home :
- +
-L'installation des dépendances dépend du système que vous utilisez. Suivez les étapes du guide des dépendances et revenez à cette page lorsque vous aurez terminé.</note> +
-Configuration +
- +
-Nous allons utiliser un utilisateur de mobilizon dédié avec /home/mobilizon home :+
  
     sudo adduser --disabled-login mobilizon     sudo adduser --disabled-login mobilizon
- 
-Conseil 
- 
-== Sur FreeBSD == 
- 
-    sudo pw useradd -n mobilizon -d /home/mobilizon -s /usr/local/bin/bash -m  
-    sudo passwd mobilizon 
- 
  
 Alors connectons-nous en tant qu'utilisateur : Alors connectons-nous en tant qu'utilisateur :
Ligne 75: Ligne 187:
 Commençons par cloner le dépôt dans un répertoire nommé live : Commençons par cloner le dépôt dans un répertoire nommé live :
  
-    git clone https://framagit.org/framasoft/mobilizon live && cd live+    git clone https://framagit.org/framasoft/mobilizon /srv/mobilizon.chapril.org/live && cd /srv/mobilizon.chapril.org/live
  
 == Installer des dépendances == == Installer des dépendances ==
Ligne 83: Ligne 195:
     mix deps.get     mix deps.get
  
-= Note =+<note tip> 
 +Lorsqu'on vous demande "Dois-je installer Hex ? ou Dois-je installer Rebar3 ?", appuyez sur la touche entrée pour confirmer. 
 +</note>
  
-Lorsqu'on vous demande "Dois-je installer Hex ? ou Dois-je installer Rebar3 ?", appuyez sur la touche  entrée pour confirmer. 
  
-Compiler ensuite ces dépendances et Mobilizon (cela peut prendre quelques minutes et peut produire toutes sortes d'avertissements, tels que des problèmes de dépréciation)+Compiler ensuite ces dépendances et Mobilizon (cela peut prendre quelques minutes et peut produire toutes sortes 
 +d'avertissements, tels que des problèmes de dépréciation)
  
     MIX_ENV=prod mix compile     MIX_ENV=prod mix compile
Ligne 101: Ligne 215:
 Enfin, nous pouvons construire le frontal (cela peut prendre quelques secondes). Enfin, nous pouvons construire le frontal (cela peut prendre quelques secondes).
  
-<note important>Avertissement +    yarn build
- +
-Le frontal du bâtiment peut consommer jusqu'à 2048 Mo de RAM par défaut. Si c'est trop ou pas assez pour votre configuration, vous pouvez ajuster la mémoire maximale utilisée en préfixant la commande avec l'option suivante : +
- +
-    NODE_BUILD_MEMORY=1024 +
- +
-ce qui donne +
-    NODE_BUILD_MEMORY=1024 yarn build +
- +
-</note> +
- +
  
 Revenons au répertoire principal Revenons au répertoire principal
Ligne 122: Ligne 225:
 Mobilizon fournit un outil en ligne de commande pour générer la configuration Mobilizon fournit un outil en ligne de commande pour générer la configuration
  
-    MIX_ENV=prod mix mobilizon.instance gen+    MIX_ENV=prod mix Mobilizon.instance gen
  
-Vous devrez alors répondre à des questions sur votre configuration et votre instance pour générer un fichier prod.secret.exs dans le dossier config/, et un fichier setup_db.psql pour configurer la base de données. +Vous devrez alors répondre à des questions sur votre configuration et votre instance pour générer un fichier 
-Configuration de la base de données+prod.secret.exs dans le dossier config/, et un fichier setup_db.psql pour configurer la base de données. Configuration 
 +de la base de données
  
-Le fichier setup_db.psql contient des instructions SQL pour créer un utilisateur et une base de données PostgreSQL avec les informations d'identification choisies et ajouter les extensions requises à la base de données Mobilizon.+Le fichier setup_db.psql contient des instructions SQL pour créer un utilisateur et une base de données PostgreSQL avec 
 +les informations d'identification choisies et ajouter les extensions requises à la base de données Mobilizon.
  
-Quittez l'exécution en tant qu'utilisateur mobilizon (car il ne devrait pas avoir les droits root/sudo) et exécutez dans le répertoire /home/mobilizon/live :+Quittez l'exécution en tant qu'utilisateur Mobilizon (car il ne devrait pas avoir les droits root/sudo) et exécutez dans 
 +le répertoire /home/mobilizon/live :
  
     sudo -u postgres psql -f setup_db.psql     sudo -u postgres psql -f setup_db.psql
Ligne 135: Ligne 241:
 Il devrait produire quelque chose du genre : Il devrait produire quelque chose du genre :
  
-CRÉER UN RÔLE +CRÉER UN RÔLE CRÉER UNE BASE DE DONNÉES Vous êtes maintenant connecté à la base de données "Mobilizon_prod" en tant 
-CRÉER UNE BASE DE DONNÉES +qu'utilisateur "postgres". CRÉER L'EXTENSION CRÉER UNE EXTENSION CRÉER UNE EXTENSION
-Vous êtes maintenant connecté à la base de données "mobilizon_prod" en tant qu'utilisateur "postgres". +
-CRÉER L'EXTENSION +
-CRÉER UNE EXTENSION +
-CRÉER UNE EXTENSION+
  
-Revenons à notre utilisateur de mobilizon :+Revenons à notre utilisateur de Mobilizon :
  
-    sudo -i -u mobilizon +    sudo -i -u mobilizon 
-    cd en direct+
  
 <note important>Avertissement <note important>Avertissement
  
 Lorsque cela est fait, n'oubliez pas de supprimer le fichier **setup_db.psql**. Lorsque cela est fait, n'oubliez pas de supprimer le fichier **setup_db.psql**.
-Migration de la base de données</note>+</note> 
 + 
 +== Migration de la base de données== 
  
 Effectuer des migrations de bases de données : Effectuer des migrations de bases de données :
Ligne 156: Ligne 259:
     MIX_ENV=prod mix ecto.migrate     MIX_ENV=prod mix ecto.migrate
  
-Note +Notez le préfixe de la variable d'environnement MIX_ENV=prod devant la commande. Vous devrez l'utiliser pour chaque 
- +commande de mixage à partir de maintenant.
-Notez le préfixe de la variable d'environnement MIX_ENV=prod devant la commande. Vous devrez l'utiliser pour chaque commande de mixage à partir de maintenant. +
- +
-Vous devrez le refaire après la plupart des mises à jour. +
- +
-Conseil +
- +
-Si certaines migrations échouent, cela signifie probablement que vous n'utilisez pas une version suffisamment récente de PostgreSQL, ou que vous n'avez pas installé les extensions requises. +
-Services+
  
-Nous pouvons arrêter d'utiliser l'utilisateur de mobilizon à nouveau. +Vous devrez le refaire après la plupart des mises à jour. Voir la section dédiée aux mises à jour. 
-Systemd+Si certaines migrations échouent, cela signifie probablement que vous n'utilisez pas une version suffisamment récente de 
 +PostgreSQL, ou que vous n'avez pas installé les extensions requises. 
 +Nous pouvons arrêter d'utiliser l'utilisateur de Mobilizon à nouveau.
  
 Copiez le fichier support/systemd/mobilizon.service dans /etc/systemd/system. Copiez le fichier support/systemd/mobilizon.service dans /etc/systemd/system.
  
-sudo cp support/systemd/mobilizon.service /etc/systemd/system/+    sudo cp support/systemd/mobilizon.service /etc/systemd/system/
  
 Rechargez Systemd pour détecter votre nouveau dossier Rechargez Systemd pour détecter votre nouveau dossier
  
-sudo systemctl daemon-reload+    sudo systemctl daemon-reload
  
-Et permettre au service+Et activer le service
  
-sudo systemctl enable --now mobilizon.service+    sudo systemctl enable --now Mobilizon.service
  
-Il fera fonctionner Mobilizon et permettra le démarrage au démarrage. Vous pouvez suivre les logs avec+Il fera fonctionner Mobilizon et permettra le démarrage du service au boot de la VM. 
 +Vous pouvez suivre les logs du service avec
  
-sudo journalctl -fu mobilizon.service+    sudo journalctl -fu Mobilizon.service
  
 Vous devriez voir quelque chose comme ça : Vous devriez voir quelque chose comme ça :
  
 Exécution de Mobilizon.Web.Endpoint avec cowboy 2.8.0 à :::4000 (http) Exécution de Mobilizon.Web.Endpoint avec cowboy 2.8.0 à :::4000 (http)
-Accédez à Mobilizon.Web.Endpoint à l'adresse https://your-mobilizon-domain.com+Accédez à Mobilizon.Web.Endpoint à l'adresse https://your-Mobilizon-domain.com
  
-Le serveur Mobilizon fonctionne sur le port 4000 sur l'interface locale uniquement, vous devez donc ajouter un reverse-proxy. +Le serveur Mobilizon fonctionne sur le port 4000 sur l'interface locale uniquement, vous devez donc ajouter un 
-Reverse proxy +reverse-proxy. Reverse proxy Nginx
-Nginx+
  
 Copiez le fichier de support/nginx/mobilizon.conf vers /etc/nginx/sites-available. Copiez le fichier de support/nginx/mobilizon.conf vers /etc/nginx/sites-available.
  
-sudo cp support/nginx/mobilizon.conf /etc/nginx/sites-available+    sudo cp support/nginx/mobilizon.conf /etc/nginx/sites-available
  
 Ensuite, établissez un lien symbolique avec le fichier dans le répertoire /etc/nginx/sites-enabled. Ensuite, établissez un lien symbolique avec le fichier dans le répertoire /etc/nginx/sites-enabled.
  
-sudo ln -s /etc/nginx/sites-available/mobilizon.conf /etc/nginx/sites-enabled/+    sudo ln -s /etc/nginx/sites-available/mobilizon.conf /etc/nginx/sites-enabled/
  
-Editez le fichier /etc/nginx/sites-available/mobilizon.conf et adaptez-le à votre propre configuration.+Pas besoin de modifier la configuration nginx sur cette VM, au Chapril ce sont les admin sys qui s'en chargent sur une autre VM.
  
-Tester la configuration avec sudo nginx -t et recharger nginx avec sudo systemctl reload nginx. +Connectez-vous à nouveau en tant qu'utilisateur du système de Mobilizon :
-Cryptons+
  
-Le modèle de configuration nginx gère le défi HTTP-01 avec le plugin webroot :+    sudo -i -u mobilizon
  
-sudo mkdir /var/www/certbot+Créer un nouvel utilisateur pour administrer votre instance Mobilizon :
  
-Exécutez certbot avec (n'oubliez pas d'adapter la commande)+     MIX_ENV=prod mix Mobilizon.users.new "your@email.com" --admin --password "Y0urP4ssw0rd"
  
-sudo certbot certonly --rsa-key-size 4096 --webroot -w /var/www/certbot/ --email your@email.com --agree-tos --text --renew-hook "/usr/sbin/nginx -s reload" -d your-mobilizon-domain.com+N'oubliez pas de préfixer la commande par un espace vide afin que le mot de passe choisi ne soit pas conservé dans 
 +l'historique de votre shell.
  
-Adaptez ensuite la configuration nginx /etc/nginx/sites-available/mobilizon.conf en décommentant les chemins des certificats et en supprimant les blocs obsolètes.+Vous pouvez ignorer l'option --password et Mobilizon en générera un pour vous et vous le retournera dans le shell.
  
-Terminez en testant la configuration avec sudo nginx -t et en rechargeant nginx avec sudo systemctl reload nginx.+Voir la documentation complète pour cette commande.
  
-Vous devriez maintenant être en mesure de charger https://your-mobilizon-domain.com dans votre navigateur. +    mix Mobilizon.users.new --help
-Création de votre premier utilisateur+
  
-Connectez-vous à nouveau en tant qu'utilisateur du système de mobilisation :+Vous pouvez maintenant vous connecter avec vos identifiants sur https://mobilizon.chapril.org 
 +et découvrir Mobilizon. N'hésitez pas à consulter également la documentation de configuration.
  
-sudo -i -u mobilizon +== Configurer les courriels ==
-cd en direct+
  
-Créer un nouvel utilisateur :+La configuration par défaut de Mobilizon suppose qu'un serveur SMTP local est disponible sur le même serveur. Pour 
 +adapter cette configuration à votre propre configuration, consultez cette page. Configurer l'authentification tierce
  
- MIX_ENV=prod mix mobilizon.users.new "your@email.com" --admin --password "Y0urP4ssw0rd"+== Configurer les authentifications tierces == 
 +Nous n'utilisons pas d'authentification tierce.
  
-Danger+== Base de données de géocodage des villes == 
 +Pour rechercher des évènements à proximité du lieu indiqué en préférences des utilisateurs, 
 +le logiciel Mobilizon a besoin d'une base de données. 
 +Nous utilisons GeoLite2-City.mmdb
  
-N'oubliez pas de préfixer la commande par un espace vide afin que le mot de passe choisi ne soit pas conservé dans l'historique de votre shell.+Il faut le placer dans le dossier /srv/mobilizon.chapril.org/live/priv/data 
 +Terminez en redémarrant le service de Mobilizon en tant que root.
  
-Conseil+    cd /srv/mobilizon.chapril.org/live/priv/data 
 +     
 +Mobilizon n'affichera un avertissement au démarrage que si la base de données est manquante, mais ce n'est pas 
 +obligatoire.
  
-Vous pouvez ignorer l'option --password et Mobilizon en générera un pour vous. 
  
-Voir la documentation complète pour cette commande.+====== Mise à jour de la version Chapril Mobilizon ======
  
-Vous pouvez maintenant vous connecter avec vos identifiants et découvrir MobilizonN'hésitez pas à consulter également la documentation de configuration+<note warning> 
-Tâches suggérées +**TODO** Section à déplacer et fusionner dans la page  
-Configurer les courriels+[[admin:services:mobilizon.chapril.org:upgrade|Mise à jour de la version chapril mobilizon]] déjà existante
 +</note>
  
-La configuration par défaut de Mobilizon suppose qu'un serveur SMTP local est disponible sur le même serveurPour adapter cette configuration à votre propre configuration, consultez cette page. +Pour fusionner les avancées de l'upstream de framagit avec la branche Chapril, il nous faut fusionner les modifications publiées dans le tag le plus récent.
-Configurer l'authentification tierce+
  
-Mobilizon peut utiliser les fournisseurs de connexion basés sur LDAP ou OAuth (Facebook, Google, etc.) pour aider à l'enregistrement ou à la connexion des utilisateurs. La configuration peut être trouvée ici. +===== Plan d'action général =====
-Configurer les géocodeurs+
  
-Cela permettra au champ de saisie automatique des adresses de fournir des adresses lors de la modification d'un événement. La valeur par défaut utilise le fournisseur Nominatim d'OpenStreetMap mais vous pouvez la changer pour le fournisseur de votre choix. 
  
-Note :+* Sur votre poste de travail 
 +  * fusionner la nouvelle version dans notre branche "chapril" 
 +  * vérifier que tout marche bien sur localhost et que le code est bien linté avec <code>yarn lint</code>
 +* Communiquer le début de migration 
 +* Compiler les assets du frontend sur la VM biliz 
 +* prendre les dernières modifications et migrer la base de données 
 +* relancer le service mobilizon 
 +* Vérfier que tout est bon 
 +* Communiquer la fin de migration
  
-Lorsque vous utilisez le fournisseur Nominatim par défaut d'OpenStreetMap, l'autocomplétion est désactivée et l'utilisation du service implique que vous acceptez leur politique d'utilisation. +===== Sur votre poste de travail =====
-Bases de données de géolocalisation+
  
-Mobilizon peut utiliser la géolocalisation à partir de données au format MMDB provenant de sources telles que les bases de données MaxMind GeoIP ou db-ip.comCela permet de montrer les événements se déroulant à proximité de l'endroit où se trouve l'utilisateur.+Admettons que vous avez les sources de mobilizon sur votre poste de travail dans le dossier **/var/www/html/mobilizon** 
 +Pour faire l'upgrade vers le tag le plus récent 
 +- fusionner le tag le plus récent sur la branche Chapril 
 +    - pour voir la liste des tags: **git tag** 
 +    - **git merge 1.0.6** (par exemple, mais il faut utiliser la version la plus récente) 
 +    - résoudre les éventuels conflits 
 +- vérifier que tout fonctionne bien 
 +    - en effectuant les migrations de base données **mix ecto.migrate** 
 +    en lançant localement le serveur **mix phx.server** et en naviguant sur [[http://localhost:4000]] 
 +- créer un tag avec le préfixe Chapril et le numéro de tag, par exemple **git tag Chapril-1.0.6** 
 +- envoyer vers la forge Chapril notre nouveau tag 
 +    - **git push --tags** 
 +    - Se positionner sur la branche master: **git checkout master** 
 +    - Prendre les avancées du dépot upstream, tags inclus: 
 +        - Si vous n'avez pas ajouté le dépot **upstream** de framagit, ajoutez le 
 +            - <code>git remote add upstream https://framagit.org/framasoft/mobilizon.git </code> 
 +        - <code>git pull --all</code> 
 +- fusionner le tag le plus récent vers la branche chapril avec un git merge. 
 +  <code>git checkout chapril && git merge 1.3.0</code> par exemple 
 +- une fois les conflits résolus, modifications faites et le lint vérifiées, faire un commit et un tag chapril-1.x.x (en mettant le bon numéro de tag, celui que l'on vient de fusionner) les envoyer sur la forge du 
 +  Chapril. 
 +    - <code>git tag chapril-1.3.0</code> par exemple 
 +    - <code>git push origin --all</code> 
 +     
 +Nous pouvons maintenant mettre à jour la VM biliz en production.
  
-Vous devrez télécharger la base de données City et la placer dans priv/data/GeoLite2-City.mmdb. Terminez en redémarrant le service de mobilisation.+===== Sur la VM biliz ===== 
 +- se connecter à la VM biliz, aller dans le dossier "live",
  
-Mobilizon n'affichera un avertissement au démarrage que si la base de données est manquantemais ce n'est pas obligatoire.+Se mettre en tant qu'utilisateur Mobilizon et récupérer les dernières modifications de la branche Chapril. (attention à 
 +avoir comme dépot d'origine le dépot de la forge aprilet non l'upstream pour bien avoir votre branche personnelle) Ce 
 +qui nous amène sur le tag le plus récent:
  
-(fin de la section installation) +    su Mobilizon 
-====== Mise à jour de la version chapril mobilizon ======+    cd /srv/mobilizon.chapril.org/live 
 +    git checkout Chapril 
 +    git pull --tags origin && git pull origin chapril
  
-Pour fusionner les avancées de l'upstream avec la branche chapril: 
-===== Plan d'action général ===== 
-  * Communiquer le début de migration 
-  * Fusionner la nouvelle version dans notre branche "chapril" 
-  * Compiler les assets du frontend et les envoyer sur la VM biliz 
-  * prendre les vernières modifications et migrer la base de données 
-  * relancer le service mobilizon 
-  * Vérfier que tout est bon 
-  * Communiquer la fin de migration 
  
-Voici le détail des opérations: +- Stopper le service Mobilizon:
-===== Localement =====+
  
-disons dans le dossier **/var/www/html/mobilizon**+    service mobilizon stop
  
-- fusionner le tag le plus récent sur la branche chapril +===== Migrer le backend de Mobilizon =====
- - pour voir la liste des tags: **git tag**  +
- - **git merge 1.0.6** (par exemple, mais il faut utiliser la version la plus récente) +
- - résoudre les éventuels conflits +
-- vérifier que tout fonctionne bien +
- - en effectuant les migrations de base données **mix ecto.migrate** +
- - en lançant localement le serveur **mix phx.server** et en naviguant sur http://localhost:4000 +
-- créer un tag avec le préfixe chapril et le numéro de tag, par exemple **git tag chapril-1.0.6** +
-- envoyer vers la forge chapril notre nouveau tag +
- - **git push --tags** +
- - Se positionner sur la branche master: **git checkout master** +
- - Prendre les avancées du dépot upstream, tags inclus: +
- - Si vous n'avez pas ajouté le dépot upstream, ajoutez le en https ou en ssh selon votre préférence +
- - <code>git remote add upstream https://framagit.org/framasoft/mobilizon.git</code> +
- - <code>git remote add upstream git@framagit.org:framasoft/mobilizon.git</code> +
- - <code>git pull --all</code> +
-- une fois les modifications faites et vérifiées, les envoyer sur la forge du chapril. +
-- se connecter à la VM biliz et aller dans le dossier live. +
-- prendre les nouvelles modifications du tag le plus récent +
-<note tip> git pull --all</note> +
-- mettre à jour les dépendances elixir +
-<note tip> MIX_ENV=prod mix deps.get </note> +
-- mettre à jour le schéma de base de données +
-<note tip> MIX_ENV=prod mix ecto.migrate</note> +
-- recompiler le backend +
-<note tip> MIX_ENV=prod mix compile</note> +
-- Recompiler les assets du frontend ( environ 1:30 min ) +
-<note tip> cd /srv/mobilizon.chapril.org/live && yarn run build </note> +
-- relancer le service mobilizon (prend environ 5 secondes)+
  
-<note tip>service mobilizon restart </note> +On en a pas forcément besoin à tous les coupssi dans la partie "sur votre poste de travail" vous aviez remarqué que seule la partie 
-- vérifier les logs du service (il ne devrait pas y avoir d'erreur affichéesinon il faut faire un rollback) et le frontal sur https://mobilizon.chapril.org penser à faire un rafraichissement avec vidage du cache de navigateur. +frontend changeaitvous pouvez relancer le service après avoir uniquement mis à jour les assets de priv/static et 
-<note tipjournalctl -fu mobilizon </note>+faire <code>service Mobilizon restart</code). Ne pas oublier de spécifier l'environnement de prod.
  
-signaler l'upgrade sur les réseaux sociaux qui vont bien+    su -H mobilizon MIX_ENV=prod mix deps.get 
-===== Sur la VM biliz =====+    su -H mobilizon MIX_ENV=prod mix ecto.migrate
  
-- se connecter à la VM biliz, aller dans le dossier "live",  
-   
-se mettre en tant qu'utilisateur mobilizon et récupérer les dernières modifications de la branche chapril. (attention à avoir comme dépot d'origine le dépot de la forge april, et non l'upstream pour bien avoir votre branche personnelle) Ce qui nous amène sur le tag le plus récent:  
-<note tip> 
-**su mobilizon** 
-**cd /srv/mobilizon.chapril.org/live** 
-**git checkout chapril** 
-**git pull --tags origin && git pull origin chapril** 
-</note> 
-- Stopper le service mobilizon: **service mobilizon stop** 
  
-===== Migrer le backend de mobilizon =====+- Remettre l'utilisateur mobilizon comme owner des fichiers.
  
-(on en a pas forcément besoin à tous les coups, si dans la partie locale vous aviez remarqué que seule la partie frontend changeait, vous pouvez relancer le service après avoir uniquement mis à jour les assets de priv/static et faire **service mobilizon restart**)Ne pas oublier de spécifier l'environnement de prod. +    chown -R mobilizon:mobilizon /srv/mobilizon.chapril.org/live
-<note tip> +
-su -H mobilizon MIX_ENV=prod mix deps.get +
-su -H mobilizon MIX_ENV=prod mix ecto.migrate +
-</note> +
-- Remettre l'utilisateur mobilizon comme owner des fichiers +
-<note tip>+
  
-chown -R mobilizon:mobilizon /srv/mobilizon.chapril.org/live  + 
-</note> +- relancer le service Mobilizon<code>service mobilizon start</code> ce qui doit prendre environ 5 secondes sur Biliz.
-- relancer le service mobilizon**service mobilizon start** ce qui doit prendre environ 5 secondes sur Biliz.+
  
 ===== Vérifications ===== ===== Vérifications =====
  
 - vérifier les erreur dans le journal du service - vérifier les erreur dans le journal du service
-<note tip>journalctl -fu mobilizon -n1000</note> 
  
- - si c'est bon, interrompre la lecture du journal d'erreurs: Ctrl + C. +        journalctl -fu Mobilizon -n1000 
- - vérifier le frontend sur https://mobilizon.chapril.org , nécessite un vidage de votre cache navigateur (ctrl + R)+ 
 +    - si c'est bon, interrompre la lecture du journal d'erreurs: Ctrl + C. 
 +    - vérifier le frontend sur https://mobilizon.chapril.org , nécessite un vidage de votre cache navigateur (ctrl + R)
 - Communiquer la fin de mise à jour sur les canaux qui vont bien. - Communiquer la fin de mise à jour sur les canaux qui vont bien.
  
 +====== Personnaliser Mobilizon ======
  
-====== Personnaliser Mobilizon  ======+<note warning> 
 +**TODO** Section à déplacer et fusionner dans la page [[admin:services:mobilizon.chapril.org:personnalisation|Personnaliser Mobilizon]] déjà existante. 
 +</note>
 ===== Avancement ===== ===== Avancement =====
 +==== Choses faites ====
  
-==== Choses faites: ==== +* une favicon Chapril 
-  * une favicon chapril +* un logo dans la barre de menu 
-  * un logo dans la barre de menu +* une palette de couleur incorporant le bleu Chapril: **rgb(0,81,132)**, alias **#ff5e00** 
-  * une palette de couleur incorporant le bleu Chapril: **rgb(0,81,132)**, alias **#ff5e00** +* l'image par défaut des évènements reprend une illustration de David Revoy 
-  * l'image par défaut des évènements reprend une illustration de David Revoy +* quelques marges différentes 
-  * quelques marges différentes +* ajout d'une liste de services en ligne dans la page de documents pour les groupes 
-  * ajout d'une liste de services en ligne dans la page de documents pour les groupes +* la barre de menus du Chapril 
-  * la barre de menus du chapril+ 
 +==== Prévues ====
  
-==== Prévues: ==== 
 - rien de plus pour le moment que ce qui est en production sur https://mobilizon.chapril.org - rien de plus pour le moment que ce qui est en production sur https://mobilizon.chapril.org
  
Ligne 375: Ligne 463:
 Changer le texte de présentation de l'instance: Changer le texte de présentation de l'instance:
 https://mobilizon.chapril.org/settings/admin/settings https://mobilizon.chapril.org/settings/admin/settings
-nom de l'instance, slogan, description courte, description longue, lien vers les CGU du chapril.+nom de l'instance, slogan, description courte, description longue, lien vers les CGU du Chapril.
 https://www.chapril.org/cgu.html https://www.chapril.org/cgu.html
  
 ne pas oublier d'enregistrer. ne pas oublier d'enregistrer.
  
-s'abonner aux autres instances le plus tôt possible pour profiter de la fédération. +s'abonner aux autres instances le plus tôt possible pour profiter de la fédération. liste des autres 
-liste des autres instances: https://instances.joinmobilizon.org +instances: https://instances.joinMobilizon.org
  
-====== Comment personnaliser ====== +====== Comment personnaliser ======  
-===== changer les images ===== +===== changer les images =====  
-Les images par défaut des évènements créé sans avoir uploadé d'affiche ont une image par défaut que l'on peut changer. +Les images par défaut des évènements créé sans avoir 
-Pareillement pour le favicon et le logo dans la barre de navigation.+uploadé d'affiche ont une image par défaut que l'on peut changer. Pareillement pour le favicon et le logo dans la barre 
 +de navigation.
  
-Dans les sources du projet, +Dans les sources du projet, certaines images ont été remplacées dans le dossier **js/public/img**
-certaines images ont été remplacées dans le dossier **js/public/img**+
 Pour les palettes de couleur, les variables scss ont été modifiées dans **js/src/variables.scss** Pour les palettes de couleur, les variables scss ont été modifiées dans **js/src/variables.scss**
 les espacements ont été modifiés dans **js/src/common.scss** les espacements ont été modifiés dans **js/src/common.scss**
Ligne 397: Ligne 484:
 **js/src/views/Resources/ResourceFolder.vue** **js/src/views/Resources/ResourceFolder.vue**
 une simple liste de liens à été ajoutée. une simple liste de liens à été ajoutée.
- 
  
 ===== Personnaliser le code source ===== ===== Personnaliser le code source =====
-Mettre en place un environnement de développement local permet de personnaliser au mieux sa version de Mobilizon. +Mettre en place un environnement de développement local permet de personnaliser 
-Pour cela il faut comprendre sa stack technique, constituée d'un côté d'un projet Phoenix écrit en Elixir / Erlang, avec une base de données Postgresql, une interface en GraphQL qui communique avec la lib Absinthe, et de l'autre côté pour le front end: une app en vueJS version 3 (dans le dossier js), utilisant Appollo pour parler avec GraphQL. +au mieux sa version de Mobilizon. Pour cela il faut comprendre sa stack technique, constituée d'un côté d'un projet 
-Le code du front end est majoritairement en typescript et les feuilles de style en SCSS.+Phoenix écrit en Elixir / Erlang, avec une base de données Postgresql, une interface en GraphQL qui communique avec la 
 +lib Absinthe, et de l'autre côté pour le front end: une app en vueJS version 3 (dans le dossier js), utilisant Appollo 
 +pour parler avec GraphQL. Le code du front end est majoritairement en typescript et les feuilles de style en SCSS.
  
-Pour personnaliser les couleurs, il faut enlever les définitions de couleurs dans les composants vue pour éviter les surcharges indésirées, et modifier les couleurs dans les fichiers js/src/variables.sccss et faire référence à ces variables ailleurs dans les composants vue si nécessaire. +Pour personnaliser les couleurs, il faut enlever les définitions de couleurs dans les composants vue pour éviter les 
-Le gros du style est fourni par la lib CSS Bulma ( https://www.bulma.io ) et agrémenté de quelques retouches dans le fichier common.scss+surcharges indésirées, et modifier les couleurs dans les fichiers js/src/variables.sccss et faire référence à ces 
 +variables ailleurs dans les composants vue si nécessaire. Le gros du style est fourni par la lib CSS 
 +Bulma ( https://www.bulma.io ) et agrémenté de quelques retouches dans le fichier common.scss
  
-Pour avoir son instance fonctionnant localement il faut installer les dépendances de dev du back (les dépendances Elixir) et du front (les dépendances NPM), configurer l'accès à la base de données postgresql dans le fichier de config .exs, effectuer les migrations de la base avec Ecto (mix ecto.migrate) puis lancer la commande. +Pour avoir son instance fonctionnant localement il faut installer les dépendances de dev du back (les dépendances 
 +Elixir) et du front (les dépendances NPM), configurer l'accès à la base de données postgresql dans le fichier de config 
 +.exs, effectuer les migrations de la base avec Ecto (mix ecto.migrate) puis lancer la commande.
  
 **mix phx.server** **mix phx.server**
  
-ce qui permet de lancer un serveur sur localhost:8000 qui se rafraîchira à l'enregistrement de vos modifications grâce à des filewatcher inode.+ce qui permet de lancer un serveur sur localhost:8000 qui se rafraîchira à l'enregistrement de vos modifications grâce à 
 +des filewatcher inode.
  
- +===== Dépot de sources ===== 
-===== Dépot de sources =====+
 On a une version personnalisée de Mobilizon, mise à disposition sur la forge On a une version personnalisée de Mobilizon, mise à disposition sur la forge
 https://forge.april.org/Chapril/mobilizon.chapril.org https://forge.april.org/Chapril/mobilizon.chapril.org
  
-Sa branche **master** est notre version personnalisée. +Sa branche **master** est notre version personnalisée. Nous la rebasons quand nécessaire par dessus la branche master de 
-Nous la rebasons quand nécessaire par dessus la branche master de l'upstream, fournie par framagit.+l'upstream, fournie par framagit.
  
 ===== Contribuer au code ===== ===== Contribuer au code =====
  
-Pour proposer du code, il convient de créer une branche, faire ses commits, vérifier que les tests passent, faire une merge request avec au moins une autre personne révisant le code à fusionner, et si tout passe bien, fusionner dans la branche master. +Pour proposer du code, il convient de créer une branche, faire ses commits, vérifier que les tests passent, faire une 
- +merge request avec au moins une autre personne révisant le code à fusionner, et si tout passe bien, fusionner dans la 
-En cas de question concernant le logiciel libre Mobilizon, se référer en premier lieu à la documentation officielle du dépot upstream. +branche master.
-https://docs.joinmobilizon.org/+
  
 +En cas de question concernant le logiciel libre Mobilizon, se référer en premier lieu à la documentation officielle du
 +dépot upstream.
 +https://docs.joinMobilizon.org/
  
 =========== Présentation sur le site =========== =========== Présentation sur le site ===========
- 
  
 {{https://www.chapril.org/sites/v2.chapril.org/IMG/arton45.jpg|screenshot}} {{https://www.chapril.org/sites/v2.chapril.org/IMG/arton45.jpg|screenshot}}
  
-<note>+
 == Organisation d'évènements – Mobilizon == == Organisation d'évènements – Mobilizon ==
 +[[https://mobilizon.chapril.org|Mobilizon.chapril.org]] est un service permettant d'organiser des évènements, préparer
 +l'avant et l'après, et de publier des infos pour les groupes que vous souhaitez gérer à plusieurs. Du plus petit
 +anniversaire familial ou la sortie entre amis à la grande manifestation internationale, le Chapril vous permet de
 +réaliser vos rassemblements comme vous le souhaitez tout en préservant la confidentialité des participants.
  
 +    Le code source du projet Mobilizon.chapril.org est disponible à l’adresse https://forge.april.org/explore/repos?q=Mobilizon.chapril.org et aussi à https://www.mumble.info/downloads/
  
-[[https://Mobilizon.chapril.org|Mobilizon.chapril.org]] est un service permettant d'organiser des évènements, préparer l'avant et l'après, et de publier des infos pour les groupes que vous souhaitez gérer à plusieurs. Du plus petit anniversaire familial ou la sortie entre amis à la grande manifestation internationale, le chapril vous permet de réaliser vos rassemblements comme vous le souhaitez tout en préservant la confidentialité des participant-e-s. 
- 
-Découvrir 
- 
-    Le code source du projet mobilizon.chapril.org est disponible à l’adresse https://forge.april.org/explore/repos?q=mobilizon.chapril.org et aussi à https://www.mumble.info/downloads/ 
-     
-</note> 
  
 ----------------------- -----------------------
Ligne 450: Ligne 541:
 == suivi de bugs == == suivi de bugs ==
  
-bugs détectés sur mobilizon.chapril.org et ouvert sur la forge upstream+Bugs détectés sur Mobilizon.chapril.org et ouvert sur la forge upstream
  
 https://framagit.org/framasoft/mobilizon/-/issues/529 https://framagit.org/framasoft/mobilizon/-/issues/529
Ligne 456: Ligne 547:
 == contributions à l'upstream == == contributions à l'upstream ==
  
-  * mise en place d'un honeypot pour empêcher le spam +* mise en place d'un honeypot pour empêcher le spam 
-  * ajout d'itinéraire utilisant openstreetmap dans la page d'évènement, dans la popup montrant une carte.+* ajout d'itinéraire utilisant openstreetmap dans la page d'évènement, dans la popup montrant une carte.
  
  
  
admin/services/mobilizon.chapril.org.1624205851.txt.gz · Dernière modification : 2021/06/20 16:17 de tykayn