Vision — Dashboard
Étape 8 du DR. Déploie l’UI Vision (cet outil même) sur tatooine, accessible via https://vision.minfra.in.
Contexte
Vision = SPA Astro + Tailwind 4 (apps/web/vision/). Affiche:
- Toutes les fiches DR (cette UI)
- État services (postcheck en live)
- Switch OS (Windows/Linux)
- Édition Markdown inline (write-file API → push GitLab)
Build: image Docker localhost/vision:latest baked sur tatooine (pas registry centralisé).
Prérequis
- tatooine Docker up (
11-platform-docker) - NFS /mnt/nas mounted (pour persistant docs/)
- Traefik routing
vision.minfra.inactif
ssh tatooine.minfra.in 'docker inspect traefik | grep -i vision'
Verify: curl -kI https://vision.minfra.in/ | head -1
Dev local (avant deploy)
task vision:dev
Lance Astro dev server http://localhost:4321 (hot reload sur edits docs/new/*.md).
Verify: curl -sI http://localhost:4321 | head -1
Build + type check
task vision:check # type-check TypeScript + Astro
task vision:build # build statique dans apps/web/vision/dist/
task vision:preview # preview build local
Verify: ls apps/web/vision/dist/index.html
Deploy production
Full deploy (rsync + build image + docker compose up):
task vision:deploy
Étapes:
- rsync sources
apps/web/vision/→ tatooine:/opt/minfra/vision - docker build image
localhost/vision:latestsur tatooine (~3 min) - docker compose up -d vision → container recreate avec nouvelle image
Verify: ssh tatooine.minfra.in ‘docker images localhost/vision:latest —format ”{{.CreatedSince}}“‘
Build image seul (sans deploy)
Quand tu veux juste rebuild l’image (ex. nouvelle dep npm):
task vision:image
Verify: ssh tatooine.minfra.in ‘docker images localhost/vision:latest’
Re-générer JSON tasks
Quand tu édites une fiche docs/new/*.md, regen le JSON consommé par Vision:
cd apps/web/vision && node scripts/extract-doc-tasks.mjs ../../../docs/new
Auto-exécuté par l’API /api/write-file quand tu sauves via l’UI Vision.
Verify: ls apps/web/vision/src/data/doc-tasks.json
Vérifier UI live
curl -k https://vision.minfra.in/api/health
Doit retourner 200 + JSON status.
Ouvre browser https://vision.minfra.in/ → vois toutes les fiches listées.
Verify: curl -k https://vision.minfra.in/docs/ -o /dev/null -w ”%{http_code}“
Suite logique
- DR complet via
13-minfra-dr-bootstrap 14-gitlab-setup(push code via GitLab CE)
Hors périmètre
- Versioning images Vision (latest only homelab)
- CI/CD GitLab Runner build automatic
- Multi-stage build (single-stage suffit)
- CDN front (pas exposé public direct)