services:mobilizon.chapril.org
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| services:mobilizon.chapril.org [2026/04/11 17:40] – supprimée - modification externe (Date inconnue) 127.0.0.1 | services:mobilizon.chapril.org [2026/04/11 17:40] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. pitchum | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Mobilizon Chapril ====== | ||
| + | |||
| + | Un logiciel fédéré pour organiser des événements, | ||
| + | |||
| + | |||
| + | {{https:// | ||
| + | |||
| + | <nspages .: | ||
| + | |||
| + | ===== Ressources ===== | ||
| + | |||
| + | Outils du Chapril : | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | Dépôts sources utilisés : | ||
| + | * Outils sur [[https:// | ||
| + | * Source de l' | ||
| + | * Dépôt '' | ||
| + | |||
| + | ===== Installation ===== | ||
| + | |||
| + | <note warning> | ||
| + | **En travaux** La documentation de l' | ||
| + | La page [[services: | ||
| + | </ | ||
| + | |||
| + | L' | ||
| + | Vous trouverez **ci-dessous les étapes d' | ||
| + | |||
| + | ===== Pré-requis ===== | ||
| + | |||
| + | - Mobilizon doit être installé sur la VM Debian nommée **biliz.cluster.chapril.org** sur laquelle on dispose de l' | ||
| + | - Le domaine choisi pour le service Mobilizon est [[https:// | ||
| + | - L' | ||
| + | |||
| + | ===== Installation locale des dépendances ===== | ||
| + | |||
| + | L' | ||
| + | |||
| + | 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:// | ||
| + | Vous devez installer la **version 1.11 au minimum**. | ||
| + | Il n'est pas possible d' | ||
| + | |||
| + | Installons la dernière version d' | ||
| + | <code bash> | ||
| + | sudo apt install erlang build-essential curl unzip openssl git cmake file | ||
| + | wget https:// | ||
| + | tar zxf elixir-1.14.1.tar.gz | ||
| + | cd elixir-1.14.1/ | ||
| + | make -j$(nproc --ignore=1) | ||
| + | sudo make install | ||
| + | </ | ||
| + | |||
| + | <note tip> | ||
| + | Si '' | ||
| + | <code bash> | ||
| + | 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 [[https:// | ||
| + | |||
| + | <code bash> | ||
| + | wget https:// | ||
| + | sudo tar --directory=/ | ||
| + | < | ||
| + | |||
| + | ==== Yarn ==== | ||
| + | |||
| + | Mobilizon utilise le gestionnaire de dépendances [[https:// | ||
| + | <code bash> | ||
| + | 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' | ||
| + | |||
| + | L' | ||
| + | <code bash> | ||
| + | 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, | ||
| + | La première étape consiste à récupérer les sources du projet. | ||
| + | Ici, nous installons la version '' | ||
| + | |||
| + | ==== Récupération du code source ==== | ||
| + | |||
| + | <note important> | ||
| + | Pour l' | ||
| + | Une fois que le thème Chapril aura été appliqué au code source, il faudra récupérer le code source depuis la [[https:// | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | git clone https:// | ||
| + | cd mobilizon/ | ||
| + | git checkout 3.0.3 | ||
| + | </ | ||
| + | |||
| + | ==== Compilation du serveur ==== | ||
| + | |||
| + | <note tip> | ||
| + | Lors du téléchargement des dépendances Elixir, '' | ||
| + | Répondez oui. :-) | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | # 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 '' | ||
| + | |||
| + | <code bash> | ||
| + | cd js/ | ||
| + | yarn install | ||
| + | yarn run build | ||
| + | cd .. | ||
| + | </ | ||
| + | |||
| + | ===== Test local de l' | ||
| + | |||
| + | Pour tester l' | ||
| + | |||
| + | ==== Installation de PostgreSQL ==== | ||
| + | |||
| + | <code bash> | ||
| + | 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 la CLI de Mobilizon : | ||
| + | |||
| + | <code bash> | ||
| + | MIX_ENV=prod mix mobilizon.instance gen | ||
| + | </ | ||
| + | |||
| + | Indiquez '' | ||
| + | |||
| + | Cette commande a généré deux fichiers. | ||
| + | Le premier, '' | ||
| + | On y trouve entre autres l'URL du serveur, le compte de l' | ||
| + | |||
| + | Le second fichier, '' | ||
| + | |||
| + | ==== Création de l' | ||
| + | |||
| + | Lancer le script SQL généré lors de l' | ||
| + | <code bash> | ||
| + | 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 : | ||
| + | <code bash> | ||
| + | MIX_ENV=prod mix ecto.migrate | ||
| + | </ | ||
| + | |||
| + | ==== Lancement du serveur ==== | ||
| + | |||
| + | Tout est prêt pour pouvoir lancer localement le serveur localement : | ||
| + | <code bash> | ||
| + | MIX_ENV=prod mix phx.server | ||
| + | </ | ||
| + | |||
| + | Voici ce que vous devriez obtenir en ouvrant le site Web '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | 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. | ||
| + | |||
| + | <note warning> | ||
| + | Fin du nouveau manuel d' | ||
| + | </ | ||
| + | |||
| + | 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:// | ||
| + | |||
| + | Nous allons utiliser un utilisateur de Mobilizon dédié avec / | ||
| + | |||
| + | sudo adduser --disabled-login mobilizon | ||
| + | |||
| + | Alors connectons-nous en tant qu' | ||
| + | |||
| + | sudo -i -u mobilizon | ||
| + | |||
| + | Commençons par cloner le dépôt dans un répertoire nommé live : | ||
| + | |||
| + | git clone https:// | ||
| + | |||
| + | === Installer des dépendances === | ||
| + | |||
| + | Installer les dépendances de l' | ||
| + | |||
| + | mix deps.get | ||
| + | |||
| + | <note tip> | ||
| + | Lorsqu' | ||
| + | </ | ||
| + | |||
| + | |||
| + | Compiler ensuite ces dépendances et Mobilizon (cela peut prendre quelques minutes et peut produire toutes sortes | ||
| + | d' | ||
| + | |||
| + | 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' | ||
| + | |||
| + | Quittez l' | ||
| + | le répertoire / | ||
| + | |||
| + | 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 " | ||
| + | qu' | ||
| + | |||
| + | Revenons à notre utilisateur de Mobilizon : | ||
| + | |||
| + | sudo -i -u mobilizon | ||
| + | |||
| + | <note important> | ||
| + | |||
| + | Lorsque cela est fait, n' | ||
| + | </ | ||
| + | |||
| + | === 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' | ||
| + | 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' | ||
| + | PostgreSQL, ou que vous n'avez pas installé les extensions requises. | ||
| + | Nous pouvons arrêter d' | ||
| + | |||
| + | Copiez le fichier support/ | ||
| + | |||
| + | sudo cp support/ | ||
| + | |||
| + | 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' | ||
| + | |||
| + | Le serveur Mobilizon fonctionne sur le port 4000 sur l' | ||
| + | reverse-proxy. Reverse proxy Nginx | ||
| + | |||
| + | Copiez le fichier de support/ | ||
| + | |||
| + | sudo cp support/ | ||
| + | |||
| + | Ensuite, établissez un lien symbolique avec le fichier dans le répertoire / | ||
| + | |||
| + | sudo ln -s / | ||
| + | |||
| + | 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' | ||
| + | |||
| + | sudo -i -u mobilizon | ||
| + | |||
| + | Créer un nouvel utilisateur pour administrer votre instance Mobilizon : | ||
| + | |||
| + | | ||
| + | |||
| + | N' | ||
| + | l' | ||
| + | |||
| + | Vous pouvez ignorer l' | ||
| + | |||
| + | Voir la documentation complète pour cette commande. | ||
| + | |||
| + | mix Mobilizon.users.new --help | ||
| + | |||
| + | Vous pouvez maintenant vous connecter avec vos identifiants sur https:// | ||
| + | et découvrir Mobilizon. N' | ||
| + | |||
| + | === 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, | ||
| + | |||
| + | === Configurer les authentifications tierces === | ||
| + | Nous n' | ||
| + | |||
| + | === 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 / | ||
| + | Terminez en redémarrant le service de Mobilizon en tant que root. | ||
| + | |||
| + | cd / | ||
| + | | ||
| + | Mobilizon n' | ||
| + | obligatoire. | ||
| + | |||
| + | =========== Présentation sur le site =========== | ||
| + | |||
| + | {{https:// | ||
| + | |||
| + | |||
| + | == Organisation d' | ||
| + | [[https:// | ||
| + | l' | ||
| + | anniversaire familial ou la sortie entre amis à la grande manifestation internationale, | ||
| + | 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:// | ||
| + | |||
| + | |||
| + | ----------------------- | ||
| + | |||
| + | == suivi de bugs == | ||
| + | |||
| + | Bugs détectés sur Mobilizon.chapril.org et ouvert sur la forge upstream | ||
| + | |||
| + | https:// | ||
| + | |||
| + | == contributions à l' | ||
| + | |||
| + | * mise en place d'un honeypot pour empêcher le spam | ||
| + | * ajout d' | ||
| + | |||
| + | |||
