Skip to content
Mintlify
Mintlify

Exportation statique

Générez une exportation statique autonome de votre documentation et téléchargez-la comme un unique bundle via l'API REST Mintlify pour l'auto-hébergement.

L’exportation statique est en bêta privée et nécessite un accord entreprise. Contactez [email protected] pour demander l’accès.

Utilisez l’API d’exportation statique pour pré-rendre votre site par programmation en un ensemble autonome de fichiers statiques et télécharger le résultat sous forme d’un unique bundle. Le bundle exporté est composé de HTML, CSS et JavaScript purs, sans dépendances d’exécution, afin que vous puissiez l’héberger sur n’importe quel stockage de fichiers statiques ou CDN.

Les exportations statiques utilisent des URL en .html qui correspondent aux fichiers du bundle. Par exemple, /guides/getting-started devient /guides/getting-started.html. Cela se produit automatiquement et ne nécessite aucune configuration.

Les URL canoniques et celles du sitemap restent sans extension. CloudFront résout ces URL automatiquement, mais d’autres hébergeurs statiques peuvent nécessiter des règles de réécriture.

Une exportation statique s’exécute sous forme de tâche asynchrone. Vous démarrez la tâche pour un projet, puis interrogez son statut jusqu’à ce que le bundle soit prêt à être téléchargé.

Démarrer une tâche d'exportation statique

Appelez Démarrer une tâche d’exportation statique avec l’identifiant de votre projet. L’API met la tâche en file d’attente et renvoie un jobId.

Un déploiement ne peut avoir qu’une seule tâche active à la fois. Si une tâche est déjà queued ou running pour le déploiement, l’endpoint retourne 409. L’endpoint est limité à 10 démarrages de tâche par organisation et par heure.

Interroger la tâche et télécharger le bundle

Interrogez Obtenir le statut d’une tâche d’exportation statique avec le jobId jusqu’à ce que status soit completed. La réponse d’une tâche terminée inclut bundleUrl, un lien S3 présigné limité dans le temps vers le bundle, ainsi que sizeBytes et un horodatage expiresAt.

Téléchargez le bundle avant expiresAt. Une fois le lien expiré, rappelez l’endpoint de statut pour obtenir une nouvelle bundleUrl. Les fichiers d’exportation sous-jacents restent réutilisables. Seul le lien est limité dans le temps.

Les fonctionnalités disponibles dépendent de la manière dont vous hébergez votre déploiement. Les déploiements en air-gapped n’ont aucun accès réseau sortant, donc toute fonctionnalité qui repose sur les services cloud de Mintlify est indisponible. Les fonctionnalités étiquetées Configurable ont une disponibilité différente selon la configuration de votre environnement.

FonctionnalitéCloudAuto-hébergé par le clientAir-gapped
Recherche dans la documentationConfigurable
Assistant IAConfigurable
Analyses webConfigurable
Playground API (« Essayer »)Configurable
Bundle d’exportation statique

Authentifiez les requêtes avec votre clé d’API admin. Générez une clé d’API admin sur la page des clés d’API de votre tableau de bord. Les clés d’API admin commencent par le préfixe mint_ et sont des secrets côté serveur — ne les exposez pas dans du code côté client.

Copiez l’identifiant de votre projet depuis la même page et utilisez-le comme paramètre de chemin projectId.

Mintlify auto-hébergé se déploie avec le chart Helm du dépôt mintlify/enterprise. Une fois qu’une tâche d’exportation statique est terminée, vous pointez le chart vers la bundleUrl et le déploiement le sert depuis votre propre infrastructure.

Ajouter la référence du bundle à vos valeurs

Définissez les champs d’exportation statique dans votre values.yaml sur la bundleUrl renvoyée par Obtenir le statut d’une tâche d’exportation statique. Le chart récupère le bundle au démarrage et le sert comme version active.

values.yaml
staticExport:
  enabled: true
  # Presigned S3 link returned by the Get static export job status endpoint.
  bundleUrl: "https://mintlify-static-export-outputs-prod.s3.amazonaws.com/6520f3a1c9b1a20012ab34cd/export.tar.gz"
  # Optional: pin to a specific export version for reproducible rollouts.
  version: "2024-06-01"

Déployer le chart

Appliquez les valeurs mises à jour avec helm upgrade. Le déploiement télécharge le bundle, le remplace en tant que site en direct et le sert depuis votre cluster.

helm upgrade --install mintlify mintlify/enterprise \
  --namespace mintlify \
  --create-namespace \
  -f values.yaml

Comme les liens présignés expirent, récupérez à nouveau le statut de la tâche et relancez la mise à niveau chaque fois que vous publiez du nouveau contenu, ou automatisez la boucle avec GitHub Actions.

Le workflow modèle suivant exécute la boucle complète d’exportation selon un calendrier ou à la demande. Il démarre une tâche, interroge jusqu’à la fin de l’exportation, puis déploie la nouvelle bundleUrl dans le chart Helm.

.github/workflows/static-export.yml
name: Publish static export

on:
  workflow_dispatch:
  schedule:
    - cron: "0 6 * * *" # Daily at 06:00 UTC

env:
  PROJECT_ID: proj_your_project_id

jobs:
  export:
    runs-on: ubuntu-latest
    steps:
      - name: Start static export job
        id: start
        run: |
          JOB_ID=$(curl -s -X POST \
            https://api.mintlify.com/v1/static-export/${{ env.PROJECT_ID }}/jobs \
            -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}" | jq -r '.jobId')
          echo "job_id=$JOB_ID" >> "$GITHUB_OUTPUT"

      - name: Wait for the job to complete and capture the bundle URL
        id: bundle
        run: |
          for i in $(seq 1 60); do
            RESPONSE=$(curl -s \
              https://api.mintlify.com/v1/static-export/${{ env.PROJECT_ID }}/jobs/${{ steps.start.outputs.job_id }} \
              -H "Authorization: Bearer ${{ secrets.MINTLIFY_ADMIN_KEY }}")
            STATUS=$(echo "$RESPONSE" | jq -r '.status')
            echo "status=$STATUS"
            if [ "$STATUS" = "completed" ]; then
              BUNDLE_URL=$(echo "$RESPONSE" | jq -r '.bundleUrl')
              echo "bundle_url=$BUNDLE_URL" >> "$GITHUB_OUTPUT"
              exit 0
            fi
            [ "$STATUS" = "failed" ] && exit 1
            sleep 10
          done
          echo "Timed out waiting for the export job to complete." >&2
          exit 1

      - name: Deploy to the Helm chart
        run: |
          helm upgrade --install mintlify mintlify/enterprise \
            --namespace mintlify \
            --set staticExport.enabled=true \
            --set staticExport.bundleUrl="${{ steps.bundle.outputs.bundle_url }}"

Stockez votre clé d’API admin sous forme de secret de dépôt MINTLIFY_ADMIN_KEY et définissez PROJECT_ID sur l’identifiant de votre projet. Avant le déploiement, configurez les identifiants du cluster, par exemple avec azure/setup-helm et votre fichier de configuration Kubernetes (kubeconfig).

Was this page helpful?Suggest editsRaise issue