1
0
Fork 0
get-installer-bootstrap/README.md

70 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

2026-05-05 08:07:35 +00:00
# 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.
2026-05-05 08:28:06 +00:00
- `/` redirige vers lURL configurée dans `/admin/settings`, ou vers `/admin` si aucune URL nest configurée.
2026-05-05 08:07:35 +00:00
- 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.
2026-05-05 09:23:28 +00:00
- En production, un cron embarqué dans limage relance `app:mappings:sync` toutes les 5 minutes.
2026-05-05 08:07:35 +00:00
- 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`
2026-05-05 09:23:28 +00:00
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`.
2026-05-05 08:07:35 +00:00
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`.
2026-05-05 08:28:06 +00:00
2. Optionnel : configurer lURL de redirection de `/` via `Configuration`.
3. Créer un mapping :
2026-05-05 08:07:35 +00:00
- 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é
2026-05-05 08:28:06 +00:00
4. Cliquer sur `Synchroniser`.
5. Appeler `http://localhost:8080/mcp/graylog/install.sh`.