Installation multi-sites (ferme ou usine à Garradin)

Il est possible assez facilement de personnaliser l'installation de Garradin 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 garradin.eu, ainsi que les instances chez AnimaFac 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 Garradin 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 Garradin dans un répertoire, par exemple /var/www/garradin (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 Garradin (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 Garradin

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/garradin/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).

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

Mises à jour

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

Gestion du code

Plutôt que d'utiliser l'archive du site Garradin, 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/garradin/ garradin.fossil
mkdir garradin
cd garradin
fossil open ../garradin.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/garradin/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.