1
0
Fork 0
get-installer-bootstrap/README.md
2026-05-05 11:23:28 +02:00

69 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 linterface de gestion.
- `/` redirige vers lURL configurée dans `/admin/settings`, ou vers `/admin` si aucune URL nest 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.
- En production, un cron embarqué dans limage relance `app:mappings:sync` toutes les 5 minutes.
- Les chemins publics hors `/admin` servent uniquement les scripts déjà synchronisés.
- Un token daccè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'
```
Lapplication 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 limage.
## 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`
Le fichier `crontab` à la racine du projet est copié dans limage `app`. Le cron démarre uniquement quand `APP_ENV=prod` et que le conteneur lance `php-fpm`.
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 lURL 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`.