Accès & déploiement¶
Vue d'ensemble¶
graph TD
DEV[👨💻 Romain\néditeur Markdown] -->|git push main| GL[GitLab CI]
GL -->|node:22 + mkdocs build| WRANGLER[wrangler pages deploy]
WRANGLER --> CF_PAGES[Cloudflare Pages\nrlacube-docs]
USER[🌐 Visiteur] -->|https://docs.rlacube.com| CF_ACCESS[Cloudflare Access\nZero Trust]
CF_ACCESS -->|Email non autorisé| BLOCK[🚫 Bloqué]
CF_ACCESS -->|Email autorisé| OTP[📧 Code OTP]
OTP -->|Code valide| SESSION[Session 30 jours]
SESSION --> CF_PAGES
style DEV fill:#dbeafe,stroke:#3b82f6
style CF_PAGES fill:#dcfce7,stroke:#22c55e
style BLOCK fill:#fee2e2,stroke:#ef4444
style SESSION fill:#fef9c3,stroke:#f59e0b
Infrastructure¶
| Composant | Détail |
|---|---|
| Repo | gitlab.com:romain.lacube/docs — branche main |
| CI/CD | GitLab CI · image node:22-slim |
| Build | mkdocs build → site/ |
| Deploy | wrangler pages deploy site |
| Hosting | Cloudflare Pages · projet rlacube-docs |
| Domaine | docs.rlacube.com · zone rlacube.com (compte pro) |
| DNS | CNAME docs → rlacube-docs.pages.dev (proxied) |
| Auth | Cloudflare Access Zero Trust · team rlacube |
Gérer les accès¶
Emails autorisés¶
| Rôle | |
|---|---|
romain.lacube@gmail.com |
Admin |
admin@rlacube.com |
Admin |
Ajouter / retirer un accès¶
- dash.cloudflare.com → compte
projects@rlacube.com - Zero Trust → Access → Applications →
rlacube-docs→ Edit - Onglet Policies → Owner → Edit
- Section Include :
Add include→Emails→ adresse
Demande-moi d'ajouter l'email — je mets à jour la policy en quelques secondes via l'API Cloudflare.
Google OAuth non configuré
Le login se fait via One-time PIN (OTP par email). Pour ajouter Google OAuth comme IdP, des credentials OAuth Google sont nécessaires.
Déployer¶
cd ~/documents/docs
# Édite tes fichiers dans docs/
# Déclare les nouvelles pages dans mkdocs.yml sous nav:
git add .
git commit -m "doc: description de la mise à jour"
git push
# → pipeline GitLab CI se lance → déploiement ~1 min
Pipeline CI/CD¶
sequenceDiagram
participant Dev as 👨💻 Dev
participant GL as GitLab
participant CI as GitLab CI
participant CF as Cloudflare Pages
Dev->>GL: git push main
GL->>CI: Déclenche pipeline
CI->>CI: apt install python3 nodejs
CI->>CI: pip install mkdocs-material
CI->>CI: npm install wrangler
CI->>CI: mkdocs build → site/
CI->>CF: wrangler pages deploy site/
CF-->>Dev: ✅ Déployé sur docs.rlacube.com
Ajouter une page¶
1. Crée le fichier :
2. Déclare dans mkdocs.yml :
nav:
- Accueil: index.md
- Tutos:
- Accès & déploiement: tutos/acces-docs.md
- Ma section: # ← ajoute ici
- Ma page: ma-section/ma-page.md
3. Push → deploy automatique.
Tokens Cloudflare¶
| Token | Compte | Usage |
|---|---|---|
CLOUDFLARE_API_TOKEN |
projects@rlacube.com |
CI/CD + Access API |
CLOUDFLARE_API_TOKEN_LACUBE |
projects@rlacube.com |
Pages + DNS |
| Token perso (révocable) | Compte perso | DNS rlacube.com (usage unique) |
Variables GitLab CI
CLOUDFLARE_API_TOKEN et CLOUDFLARE_ACCOUNT_ID sont stockés comme variables CI dans le projet GitLab.