Installation multi-sites (ferme ou usine à Paheko)

Il est possible assez facilement de personnaliser l'installation de Paheko pour héberger plusieurs associations avec le même code, permettant de n'avoir qu'une seule copie du code à mettre à jour. C'est comme ça que fonctionne le service https://paheko.cloud/, ainsi que les instances chez Zourit ou KAZ.bzh par exemple.

Pour mettre en place ce fonctionnement il faut jouer avec la constante DATA_ROOT dans le fichier config.local.php.

Exemple clé en main

Voici un exemple clé en main d'installation de Paheko permettant d'héberger quelques associations (plusieurs dizaines).

Pré-requis : il est conseillé d'avoir un utilisateur

  1. Télécharger et décompresser l'archive Paheko dans un répertoire, par exemple /var/www/paheko (ne pas procéder au reste de l'installation)
  2. Faire pointer les sous-domaines (ou un wild-card) des associations vers ce répertoire où a été placé le code de Paheko (sans procéder à l'installation).
  3. Télécharger le fichier config.local.php, modifier les constantes FACTORY_DOMAIN, MAIL_ERRORS et SECRET_KEY (et éventuellement FACTORY_USER_DIRECTORY si désiré), et le recopier dans le répertoire racine de l'installation de Paheko

Chaque instance (association) stockera ses données dans un sous-répertoire du répertoire indiqué dans FACTORY_USER_DIRECTORY.

Pour créer une nouvelle instance il suffit de créer son répertoire : mkdir /var/www/paheko/users/club-de-tennis par exemple.

Dans le cas contraire une erreur indiquant "cette association n'existe pas" s'affichera.

Une fois le répertoire créé il suffit de se rendre à l'adresse de l'installation pour configurer l'association (ici club-de-tennis.monsite.tld).

Cron / tâches planifiées

Il est recommandé de suivre également les étapes suivantes pour activer les tâches planifiées (sauvegarde automatisée, envoi de rappels automatiques, envoi des e-mails).

  1. Télécharger les fichiers factory_cron.sh et factory_cron_emails.sh et les recopier dans le répertoire racine de l'installation de Paheko, et les rendre exécutable (chmod +x factory_cron_*.sh)
  2. Configurer une tâche cron, par exemple avec crontab -e -u paheko, comme ceci :
@daily /var/www/paheko/factory_cron.sh
* * * * * /var/www/paheko/factory_cron_emails.sh

Le premier script est exécuté chaque jour et lance les sauvegardes automatiques et les rappels de cotisations, quand le second envoie les e-mails en attente.

Mises à jour

Il est possible de mettre à jour le code de Paheko, chaque instance sera mise à jour automatiquement lors de la prochaine visite.

Gestion du code

Plutôt que d'utiliser l'archive du site Paheko, il est recommandé de réaliser une installation à partir de Fossil, ce qui permettra des mises à jour simplifiées :

Pour installer la version 1.1.0 :

cd /var/www
fossil clone https://fossil.kd2.org/paheko/ paheko.fossil
mkdir paheko
cd paheko
fossil open ../paheko.fossil
fossil update 1.1.0
cd src
make deps

Ensuite à la mise à jour vers la version 1.1.2 par exemple :

cd /var/www/paheko/src
fossil update 1.1.2
make deps

Support

Si vous avez besoin de plus d'aide pour mettre en place un tel service vous pouvez contacter les développeurs sur la liste dev@