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é | Cloud | Auto-hébergé par le client | Air-gapped |
|---|---|---|---|
| Recherche dans la documentation | Configurable | ||
| Assistant IA | Configurable | ||
| Analyses web | Configurable | ||
| Playground API (« Essayer ») | Configurable | ||
| Bundle d’exportation statique |
- Démarrer une tâche d’exportation statique : mettre en file d’attente une tâche d’exportation statique pour un projet.
- Obtenir le statut d’une tâche d’exportation statique : interroger l’état de la tâche et, une fois terminée, récupérer un lien présigné de téléchargement du bundle.
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.
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.yamlComme 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.
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).