# Get Installer Bootstrap Application web qui sert des scripts `.sh` depuis un cache local alimenté par des dépôts Git. Exemple : un mapping `mcp/graylog/install.sh` peut servir le fichier `install.sh` du dépôt `https://forge.lclr.dev/AI/graylog-mcp.git`. ## Fonctionnement - `/admin` affiche l’écran de connexion puis l’interface de gestion. - `/` redirige vers l’URL configurée dans `/admin/settings`, ou vers `/admin` si aucune URL n’est configurée. - Un mapping lie un chemin public `.sh` à une URL Git, une référence Git et un chemin de fichier dans le dépôt. - Le bouton `Synchroniser` clone ou met à jour le dépôt, extrait la référence demandée et copie le fichier dans le cache. - Les chemins publics hors `/admin` servent uniquement les scripts déjà synchronisés. - Un token d’accès optionnel peut être renseigné pour les dépôts privés en HTTPS. Il est utilisé via `GIT_ASKPASS` pendant la synchronisation. ## Développement ```bash docker compose -f compose.yaml -f compose.dev.yaml up -d --build docker compose -f compose.yaml -f compose.dev.yaml exec app php bin/console app:admin:create admin 'change-me' ``` L’application est disponible sur `http://localhost:8080`. Le fichier `compose.dev.yaml` monte le répertoire local dans `/app`, ce qui permet de tester les changements sans rebuild de l’image. ## Production / Coolify Déployer avec `compose.yaml`. Variables utiles : ```dotenv APP_SECRET=replace-with-a-long-random-secret HTTP_PORT=8080 ``` Les migrations SQLite sont exécutées au démarrage du conteneur `app`. Les volumes Docker conservent : - `app-data` : base SQLite `/app/var/data/app.db` - `app-cache` : dépôts clonés et scripts servis depuis `/app/var/bootstrap-cache` Créer ou mettre à jour un compte admin : ```bash docker compose exec app php bin/console app:admin:create admin 'strong-password' ``` ## Tests ```bash docker compose -f compose.yaml -f compose.dev.yaml run --rm -e APP_ENV=test app php vendor/bin/phpunit ``` ## Servir un script 1. Se connecter sur `/admin`. 2. Optionnel : configurer l’URL de redirection de `/` via `Configuration`. 3. Créer un mapping : - Chemin public : `mcp/graylog/install.sh` - Dépôt : `https://forge.lclr.dev/AI/graylog-mcp.git` - Réf. : `main` - Fichier : `install.sh` - Token : optionnel, pour dépôt privé 4. Cliquer sur `Synchroniser`. 5. Appeler `http://localhost:8080/mcp/graylog/install.sh`.