1
0
Fork 0
App web qui bootstrap des installer bash, liés à des repos git paramétrables via une page admin
Find a file
2026-05-05 10:28:06 +02:00
bin build: bootstrap symfony app 2026-05-05 09:30:51 +02:00
config feat: add admin authentication 2026-05-05 09:56:49 +02:00
docker build: align php docker runtime 2026-05-05 09:49:04 +02:00
docs/superpowers docs: add installer bootstrap implementation plan 2026-05-05 09:17:53 +02:00
migrations feat: configure root redirect 2026-05-05 10:28:06 +02:00
public build: bootstrap symfony app 2026-05-05 09:30:51 +02:00
src feat: configure root redirect 2026-05-05 10:28:06 +02:00
templates feat: configure root redirect 2026-05-05 10:28:06 +02:00
tests feat: configure root redirect 2026-05-05 10:28:06 +02:00
.dockerignore build: add docker deployment files 2026-05-05 09:32:06 +02:00
.editorconfig build: bootstrap symfony app 2026-05-05 09:30:51 +02:00
.env build: bootstrap symfony app 2026-05-05 09:30:51 +02:00
.env.test build: bootstrap symfony app 2026-05-05 09:30:51 +02:00
.gitignore build: bootstrap symfony app 2026-05-05 09:30:51 +02:00
compose.dev.yaml build: add docker deployment files 2026-05-05 09:32:06 +02:00
compose.yaml build: add docker deployment files 2026-05-05 09:32:06 +02:00
composer.json build: align php docker runtime 2026-05-05 09:49:04 +02:00
composer.lock build: align php docker runtime 2026-05-05 09:49:04 +02:00
phpunit.xml.dist build: bootstrap symfony app 2026-05-05 09:30:51 +02:00
README.md feat: configure root redirect 2026-05-05 10:28:06 +02:00
symfony.lock build: bootstrap symfony app 2026-05-05 09:30:51 +02: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.
  • / 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.
  • 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

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 :

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 :

docker compose exec app php bin/console app:admin:create admin 'strong-password'

Tests

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.