Distribution commerciale DockerHub
Cette page explique comment distribuer NFZ Docs Builder comme produit commercial avec DockerHub et NFZ License Server.
Architecture retenue
- DockerHub publie les images prêtes à déployer.
- NFZ License Server active les éditions, quotas, abonnements, tenants et entitlements.
- NFZ Docs Builder vérifie la licence côté serveur via
license-statuset applique les droits dans les hooks Feathers.
Cette séparation évite de multiplier les images pour chaque client : le conteneur reste identique, les droits changent via la licence.
Domaine produit
Le domaine produit de référence est :
vitepress-buider.comVariables minimales :
NFZ_PRODUCT_ID=nfz-docs-builder
NFZ_PRODUCT_DOMAIN=vitepress-buider.com
NFZ_LICENSE_MODE=remote
NFZ_LICENSE_SERVER_URL=https://licence.nfz-serveur.fr
NFZ_LICENSE_VERIFY_PATH=/api/license/verify
NFZ_LICENSE_KEY=...Tags DockerHub recommandés
| Tag | Usage |
|---|---|
vevedh/nfz-docs-builder:latest | Community stable publique |
vevedh/nfz-docs-builder:community-latest | Community explicite |
vevedh/nfz-docs-builder:studio-latest | Petite équipe / édition Studio commerciale |
vevedh/nfz-docs-builder:pro-latest | Offre Pro SaaS principale |
vevedh/nfz-docs-builder:enterprise-latest | Client Enterprise dédié |
vevedh/nfz-docs-builder:0.1.72 | Version immutable exacte |
Le tag Studio est volontairement mappé à NFZ_EDITION=starter dans le runtime actuel pour préserver la compatibilité technique existante.
Build local
docker build -f Dockerfile.production -t vevedh/nfz-docs-builder:0.1.72 .Test :
docker run --rm -p 3000:3000 \
-e NFZ_AUTH_SECRET='change-this-secret' \
-e NFZ_LICENSE_MODE=local \
-e NFZ_EDITION=community \
-e MONGO_URL='mongodb://root:changeMe@host.docker.internal:27037/nfz_docs_notion_editor?authSource=admin' \
-e MONGODB_URL='mongodb://root:changeMe@host.docker.internal:27037/nfz_docs_notion_editor?authSource=admin' \
vevedh/nfz-docs-builder:0.1.72Healthcheck :
curl http://localhost:3000/api/healthPublication automatique
Le workflow .github/workflows/publish-dockerhub.yml publie l'image sur DockerHub.
Secrets GitHub nécessaires :
DOCKERHUB_USERNAME
DOCKERHUB_TOKENLe lancement manuel permet de choisir :
image_tag;edition:community,studio,pro,enterprise;- publication ou non des tags
latest.
Déploiement Portainer / Traefik
Le fichier docker-compose.production.yml sert de base pour un VPS derrière Traefik.
Exemple Pro :
NFZ_DOCS_IMAGE=vevedh/nfz-docs-builder
NFZ_DOCS_IMAGE_TAG=pro-latest
NFZ_TRAEFIK_HOST=vitepress-buider.com
NFZ_LICENSE_MODE=remote
NFZ_LICENSE_KEY=...
NFZ_LICENSE_SERVER_URL=https://licence.nfz-serveur.fr
NFZ_AUTH_SECRET=...
MONGO_URL=...
MONGODB_URL=...Bonnes pratiques
- Ne jamais mettre
NFZ_LICENSE_ENFORCEMENT=falseen production. - Ne jamais exposer
NFZ_LICENSE_KEYdans le navigateur. - Publier
latestuniquement pour l'édition Community stable. - Préférer les tags immutables (
0.1.72,pro-0.1.72) pour les clients sensibles. - Tester
/admin/license,/admin/commercial-distributionet/api/healthaprès chaque déploiement.
Prochaine brique
La prochaine étape produit consiste à ajouter une console d'activation licence : test de clé, association tenant, statut abonnement et rafraîchissement sécurisé des entitlements.