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

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

Exemple

Faire pointer les sous-domaines des associations vers un répertoire où a été placé le code de Garradin (sans procéder à l'installation). Dans le répertoire créer un fichier config.local.php contenant :

<?php

if (!preg_match('/^([a-z]+)\.monsite\.tld$/', $_SERVER['SERVER_NAME'], $match)) {
    die('Accès invalide');
}

$user = $match[1];
$user_data_dir = __DIR__ . '/users/' . $user;

if (!is_dir($user_data_dir)) {
    mkdir($user_data_dir, 0700, true);
}

// Définir le dossier où sont stockés les données
define('Garradin\DATA_ROOT', $user_data_dir);

// Désactiver le log des erreurs visible dans l'interface (sécurité)
define('Garradin\ERRORS_ENABLE_LOG_VIEW', false);

// Ne pas afficher les erreurs de code
define('Garradin\SHOW_ERRORS', false);

// Envoyer les erreurs par mail à cette adresse
define('Garradin\MAIL_ERRORS', 'administrateur@monsite.tld');

Ainsi chaque instance stockera ses données dans le répertoire garradin/users/identifiant.

Si vous avez besoin de plus d'aide pour mettre en place un tel service vous pouvez contacter les développeurs.