Outils pour utilisateurs

Outils du site


admin:services:mobilizon.chapril.org

Mobilizon Chapril

Ressources

Installation

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 Installation de mobilizon sera supprimée à l'issue de ce chantier.

L'installation pas à pas est détaillée sur la doc de joinMobilizon.org. Vous trouverez ci-dessous les étapes d'installations spécifiques à Chapril.

Pré-requis

  1. Mobilizon doit être installé sur la VM Debian nommée biliz.cluster.chapril.org sur laquelle on dispose de l'accès root
  2. Le domaine choisi pour le service Mobilizon est mobilizon.chapril.org
  3. L'envoi de mails depuis la VM est 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 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 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 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
Si wget n'est pas déjà installé sur votre machine:
  sudo apt install wget

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 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 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 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

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 forge de l'April
  git clone https://framagit.org/framasoft/mobilizon.git
  cd mobilizon
  git checkout 3.0.3

Compilation du serveur

Lors du téléchargement des dépendances Elixir, mix va vous demander si vous souhaitez installer Hex et Rebar3. Répondez oui :-)
  # 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

Tout est prêt pour pouvoir lancer localement le serveur localement:

  MIX_ENV=prod mix phx.server

Voici ce que vous devriez obtenir en ouvrant le site web localhost:4000:

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.

Fin du nouveau manuel d'installation en travaux

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 :

  Elixir 1.8 et plus
  NodeJS 12+
  PostgreSQL 11+

Pour installer une version correcte de node, référez vous à cette doc: https://github.com/nodesource/distributions/blob/master/README.md#table-of-contents

Nous allons utiliser un utilisateur de Mobilizon dédié avec /home/mobilizon home :

  sudo adduser --disabled-login mobilizon

Alors connectons-nous en tant qu'utilisateur :

  sudo -i -u mobilizon

Commençons par cloner le dépôt dans un répertoire nommé live :

  git clone https://framagit.org/framasoft/mobilizon /srv/mobilizon.chapril.org/live && cd /srv/mobilizon.chapril.org/live
Installer des dépendances

Installer les dépendances de l'Elixir

  mix deps.get
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)

  MIX_ENV=prod mix compile

Allez dans le répertoire js/

  cd js

et installer les dépendances Javascript

  yarn install

Enfin, nous pouvons construire le frontal (cela peut prendre quelques secondes).

  yarn build

Revenons au répertoire principal

  cd ../
Configuration

Mobilizon fournit un outil en ligne de commande pour générer la configuration

  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. 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.

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

Il devrait produire quelque chose du genre :

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 qu'utilisateur “postgres”. CRÉER L'EXTENSION CRÉER UNE EXTENSION CRÉER UNE EXTENSION

Revenons à notre utilisateur de Mobilizon :

  sudo -i -u mobilizon 
Avertissement

Lorsque cela est fait, n'oubliez pas de supprimer le fichier setup_db.psql.

Migration de la base de données

Effectuer des migrations de bases de données :

  MIX_ENV=prod mix ecto.migrate

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. Voir la section dédiée aux mises à jour. 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.

  sudo cp support/systemd/mobilizon.service /etc/systemd/system/

Rechargez Systemd pour détecter votre nouveau dossier

  sudo systemctl daemon-reload

Et activer le service

  sudo systemctl enable --now Mobilizon.service

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

Vous devriez voir quelque chose comme ça :

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

Le serveur Mobilizon fonctionne sur le port 4000 sur l'interface locale uniquement, vous devez donc ajouter un reverse-proxy. Reverse proxy Nginx

Copiez le fichier de support/nginx/mobilizon.conf vers /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.

  sudo ln -s /etc/nginx/sites-available/mobilizon.conf /etc/nginx/sites-enabled/

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.

Connectez-vous à nouveau en tant qu'utilisateur du système de Mobilizon :

  sudo -i -u mobilizon

Créer un nouvel utilisateur pour administrer votre instance Mobilizon :

   MIX_ENV=prod mix Mobilizon.users.new "your@email.com" --admin --password "Y0urP4ssw0rd"

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.

Vous pouvez ignorer l'option –password et Mobilizon en générera un pour vous et vous le retournera dans le shell.

Voir la documentation complète pour cette commande.

  mix Mobilizon.users.new --help

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.

Configurer les courriels

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

Configurer les authentifications tierces

Nous n'utilisons pas d'authentification tierce.

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

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.

  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.

Présentation sur le site

screenshot

Organisation d'évènements – Mobilizon

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/

suivi de bugs

Bugs détectés sur Mobilizon.chapril.org et ouvert sur la forge upstream

https://framagit.org/framasoft/mobilizon/-/issues/529

contributions à l'upstream

* 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.

admin/services/mobilizon.chapril.org.txt · Dernière modification : 2025/05/10 13:02 de rro