Aller au contenu

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 buildsite/
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

Email Rôle
romain.lacube@gmail.com Admin
admin@rlacube.com Admin

Ajouter / retirer un accès

  1. dash.cloudflare.com → compte projects@rlacube.com
  2. Zero Trust → Access → Applications → rlacube-docs → Edit
  3. Onglet Policies → Owner → Edit
  4. Section Include : Add includeEmails → 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 :

docs/
└── ma-section/
    └── ma-page.md   ← nouveau 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.