From 5d029771a05272f4f424eb151c511dab9af77318 Mon Sep 17 00:00:00 2001 From: Corentin JOGUET Date: Thu, 7 May 2026 18:17:45 +0200 Subject: [PATCH] feat(docmost): manual setup guide for iteration 3 BUILD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - docmost/setup/README.md : quickstart 10 min (admin + 3 spaces + page test + share) - docmost/setup/spaces.yaml : schema declaratif (reference future si API Community s'ouvre) - Makefile : target setup-docmost-guide (rappel des etapes) API publique Docmost = Enterprise payante (cf docmost.com/docs/user-guide/api). Setup manuel UI obligatoire pour Community Edition AGPL — rapide (10 min) et stable. Iteration 3 du plan Fast-App couverte (stories S-01, S-07, S-08). Couvre les UC : UCW01 gerer wiki + droits, UCW02 inviter client par lien partage, UCW03 creer space etudiant. --- Makefile | 12 ++++ docmost/setup/README.md | 147 ++++++++++++++++++++++++++++++++++++++ docmost/setup/spaces.yaml | 74 +++++++++++++++++++ 3 files changed, 233 insertions(+) create mode 100644 docmost/setup/README.md create mode 100644 docmost/setup/spaces.yaml diff --git a/Makefile b/Makefile index 7d575fb..7bd5fa6 100644 --- a/Makefile +++ b/Makefile @@ -82,6 +82,18 @@ seed-baserow: BASEROW_URL=$${BASEROW_URL:-http://localhost:8080} \ python3 baserow/seed/seed.py +setup-docmost-guide: + @echo "Docmost API publique = feature Enterprise payante." + @echo "Setup manuel via UI (10 min) — cf docmost/setup/README.md :" + @echo "" + @echo " 1. Ouvrir http://localhost:3000" + @echo " 2. Creer compte admin (workspace Acadenice)" + @echo " 3. Creer 3 spaces : CFA, Agence, Interne" + @echo " 4. Creer page Welcome + share link" + @echo " 5. Tester Mermaid + Drawio + Excalidraw" + @echo "" + @echo "Detail : docmost/setup/README.md" + clean: @echo "ATTENTION: cette commande supprime TOUS les volumes (donnees perdues)." @read -p "Tapez 'oui' pour confirmer: " confirm; [ "$$confirm" = "oui" ] || exit 1 diff --git a/docmost/setup/README.md b/docmost/setup/README.md new file mode 100644 index 0000000..fb4038d --- /dev/null +++ b/docmost/setup/README.md @@ -0,0 +1,147 @@ +# Docmost setup — Iteration 3 BUILD + +Configuration manuelle de Docmost (10 min). Couvre stories S-01 (workspace + spaces), S-07 (share link), S-08 (space etudiant pattern). + +> **Pourquoi manuel et pas script ?** L'API REST publique Docmost est une feature **Enterprise payante** ([docs](https://docmost.com/docs/user-guide/api)). Pour la Community Edition (gratuite, AGPL) qu'on utilise, le setup via UI reste obligatoire — rapide et stable. + +## 1. Creer le compte admin (premier boot — 1 min) + +1. Ouvrir **http://localhost:3000** +2. Page d'accueil → "Create your account" +3. Renseigner : + - **Workspace name** : `Acadenice` + - **Your name** : `Corentin JOGUET` + - **Email** : `corentin@acadenice.fr` + - **Password** : robuste (sauve dans pass/vault) +4. Submit → tu arrives dans Docmost avec workspace `Acadenice` + +## 2. Creer les 3 spaces (3 min) + +> Mapping miroir des collections Outline (cf doc 02 scope etendu). + +Pour chaque space : +1. Sidebar gauche → "Create space" (icon +) +2. Renseigner les champs ci-dessous + +### Space 1 — CFA + +| Champ | Valeur | +|-------|--------| +| Name | `CFA` | +| Description | `Centre de Formation des Apprentis — formations, blocs, modules, supports pedagogiques` | +| Icon | (au choix, ex: `school`) | +| Visibility | `Open to workspace members` (default) | + +### Space 2 — Agence + +| Champ | Valeur | +|-------|--------| +| Name | `Agence` | +| Description | `Agence de developpement — projets clients, livraisons, doc technique` | +| Icon | (au choix, ex: `code`) | +| Visibility | `Open to workspace members` | + +### Space 3 — Interne + +| Champ | Valeur | +|-------|--------| +| Name | `Interne` | +| Description | `Operations internes — vision, RH, communication, batiment, evenements` | +| Icon | (au choix, ex: `building`) | +| Visibility | `Open to workspace members` | + +## 3. Creer une page test "Welcome" + Share link (3 min) + +Pour valider stories **S-07** (share link client guest). + +1. Aller dans space `CFA` +2. "New page" → titre `Welcome formation-hub` +3. Coller dans le contenu : + +```markdown +# Welcome to formation-hub + +## Stack + +- **Docmost** : ce wiki (AGPL self-host) +- **Baserow** : DBs structurees (MIT self-host) +- **Bridge service** : a venir (Phase 2) + +## Diagrammes natifs + +### Mermaid + +\`\`\`mermaid +flowchart LR + User -->|push| Forgejo + Forgejo -->|CI| Tests + Tests -->|deploy| Staging +\`\`\` + +### Drawio + +(Insere un block drawio via slash menu `/drawio`) + +### Excalidraw + +(Insere un block excalidraw via slash menu `/excalidraw`) +``` + +4. Sauver +5. Boutton "Share" en haut a droite +6. Activer "Share to web" + configurer : + - **Password** : optionnel (ex `acadenice2026`) + - **Expiration** : 7 days +7. Copier le share link +8. Test : ouvrir le link en navigation privee → page lisible sans login + +## 4. Pattern "space etudiant" (2 min — story S-08) + +Pour onboarder un etudiant : + +1. "Create space" → `Etudiant - ` (ex: `Etudiant - Marie Dupont`) +2. Description : `Space personnel - libre usage` +3. Visibility : **Private** +4. Apres creation : Settings space → Permissions → Invite member +5. Renseigner l'email de l'etudiant + role `Editor` +6. L'etudiant recoit invite mail + acces uniquement a son space + +**Automation possible Phase 2** : le bridge service pourra creer ce pattern via des appels qui mimick l'UI (en reverse-engineer des appels prives, ou en attendant que l'API publique passe en open dans une version future Community). + +## 5. Tester les diagrammes natifs (1 min) + +Sur la page Welcome : +- Ajoute un block **Mermaid** via `/mermaid` +- Ajoute un block **Drawio** via `/drawio` → editor s'ouvre +- Ajoute un block **Excalidraw** via `/excalidraw` → canvas s'ouvre + +Si les 3 fonctionnent : Phase 1 Docmost est valide. + +## Configuration recommandee additionnelle + +### Workspace settings + +- Settings → Workspace → **Allow member workspace creation** : OFF (admin only) +- Settings → Security → **Two-factor auth** : encourager (pas obligatoire Phase 1) + +### User settings (Corentin perso) + +- Settings → Profile → photo + bio +- Settings → Preferences → langue francais si dispo +- Settings → API keys : skip (Enterprise) + +## Checklist iteration 3 BUILD + +- [ ] Compte admin Docmost cree +- [ ] Workspace `Acadenice` operationnel +- [ ] 3 spaces crees (CFA, Agence, Interne) avec descriptions + icons +- [ ] 1 page test `Welcome formation-hub` dans CFA avec Mermaid block +- [ ] Share link genere + teste en navigation privee +- [ ] Pattern space etudiant teste (1 space test fictif puis supprime) +- [ ] Diagrammes natifs Mermaid + Drawio + Excalidraw verifies fonctionnels + +Une fois tous coches : **iteration 3 done**, on passe a iteration 4 (forms publics Baserow). + +## Schema declaratif (pour reference future) + +`docmost/setup/spaces.yaml` decrit la structure cible. Si l'API Community Docmost s'ouvre dans une version future (issue [#346](https://github.com/docmost/docmost/issues/346) suit ce sujet), ce YAML pourra etre consomme par un script seed. diff --git a/docmost/setup/spaces.yaml b/docmost/setup/spaces.yaml new file mode 100644 index 0000000..23a8df4 --- /dev/null +++ b/docmost/setup/spaces.yaml @@ -0,0 +1,74 @@ +# Docmost setup declaratif — formation-hub +# Reference pour le setup manuel (cf README.md). Format YAML pour lisibilite. +# Si l'API Community Docmost s'ouvre, ce fichier pourra alimenter un script seed. + +workspace: + name: Acadenice + admin: + name: Corentin JOGUET + email: corentin@acadenice.fr + settings: + allow_member_workspace_creation: false + enforce_2fa: false # encourage mais non obligatoire Phase 1 + +spaces: + - name: CFA + slug: cfa + description: | + Centre de Formation des Apprentis — formations, blocs, modules, + supports pedagogiques, regles RNCP. + icon: school + visibility: workspace_members # Open to all workspace members + permissions: + - role: admin + members: [corentin@acadenice.fr] + - role: editor + groups: [formateurs] + + - name: Agence + slug: agence + description: | + Agence de developpement Acadenice — projets clients, livraisons, + documentation technique, R&D. + icon: code + visibility: workspace_members + permissions: + - role: admin + members: [corentin@acadenice.fr] + - role: editor + groups: [developpeurs] + + - name: Interne + slug: interne + description: | + Operations internes — vision, RH, communication, + batiment, evenements. + icon: building + visibility: workspace_members + permissions: + - role: admin + members: [corentin@acadenice.fr] + +# Pattern recurrent : un space par etudiant (cf README section 4) +space_etudiant_template: + name_pattern: "Etudiant - {nom} {prenom}" + visibility: private + description: "Space personnel - libre usage" + permissions: + - role: editor + members: ["{etudiant_email}"] + - role: admin + members: [corentin@acadenice.fr] + +# Page de demonstration creee dans space CFA pour tester partage +welcome_page: + space: CFA + title: "Welcome formation-hub" + share_link: + enabled: true + password: optional + expiration_days: 7 + blocks_demo: + - type: mermaid + - type: drawio + - type: excalidraw