DockerHub publishing
This page explains how to build and publish the NFZ Docs Builder DockerHub images, with self-hosting as the current priority.
Main images
| Usage | Image | Priority tag |
|---|---|---|
| Self-hosting | vevedh/nfz-docs-notion-editor | selfhost-0.1.108 |
| Community | vevedh/nfz-docs-builder | community-0.1.108 |
| Studio | vevedh/nfz-docs-builder | studio-0.1.108 |
| Pro | vevedh/nfz-docs-builder | pro-0.1.108 |
| Enterprise | vevedh/nfz-docs-builder | enterprise-0.1.108 |
Prepare DockerHub
Log in with a DockerHub token:
export DOCKERHUB_NAMESPACE=vevedh
docker loginIn GitHub Actions, configure these secrets:
DOCKERHUB_USERNAME
DOCKERHUB_TOKENPreview the publishing plan
bun run dockerhub:planThis command does not build or push anything. It only displays the planned tags.
Build the self-host image locally
bun run dockerhub:build:selfhostProduced image:
vevedh/nfz-docs-notion-editor:selfhost-0.1.108Publish the self-hosting image
bun run dockerhub:publish:selfhostPublished tags:
vevedh/nfz-docs-notion-editor:selfhost-0.1.108
vevedh/nfz-docs-notion-editor:selfhost-latestPublish commercial images
Community only:
bun run dockerhub:publish:communityAll commercial editions:
bun run dockerhub:publish:editionsFull release, self-host plus editions:
bun run dockerhub:publish:allGitHub Actions publishing
The .github/workflows/publish-dockerhub.yml workflow exposes three important inputs:
| Input | Recommended value |
|---|---|
target | selfhost for the current priority |
image_tag | 0.1.108 |
push_latest | true after validation |
The workflow uses the same canonical script as local publishing:
node scripts/dockerhub-publish.mjsValidate before publishing
bun run diagnose:dockerhub-publishing
bun run verify:selfhostValidate after publishing
docker pull vevedh/nfz-docs-notion-editor:selfhost-0.1.108
docker run --rm -p 3000:3000 vevedh/nfz-docs-notion-editor:selfhost-0.1.108Endpoints to check:
http://localhost:3000/api/health
http://localhost:3000/admin/selfhost
http://localhost:3000/admin/licenseSecurity
DockerHub images must not contain license keys, real MongoDB secrets, or publishing tokens. Secrets must be injected through Docker Compose, Portainer, GitHub Actions, or Docker secrets.
Correctif 0.1.108 — Secrets DockerHub obligatoires uniquement en publication
Le workflow DockerHub distingue désormais deux modes :
| Mode | Déclenchement | DockerHub login | Usage |
|---|---|---|---|
| Build-only | push sur main ou exécution manuelle avec publish=false | non | vérifier que l’image se construit sans publier |
| Publish | tag v*.*.* ou exécution manuelle avec publish=true | oui | pousser les tags DockerHub |
L’erreur Username and password required signifie que les secrets GitHub Actions n’étaient pas configurés. Pour publier, créer un token DockerHub puis ajouter ces secrets dans le dépôt GitHub :
Settings -> Secrets and variables -> Actions -> New repository secret
DOCKERHUB_USERNAME=<identifiant DockerHub>
DOCKERHUB_TOKEN=<access token DockerHub>Utiliser un Access Token DockerHub plutôt que le mot de passe du compte.
Pour un test sans publication :
bun run diagnose:dockerhub-publishing
bun run dockerhub:planPour publier l’image self-host prioritaire depuis GitHub Actions :
- ouvrir Actions -> Build and publish DockerHub images ;
- cliquer Run workflow ;
target=selfhost;image_tag=0.1.108;publish=true;push_latest=true.
Tags attendus :
vevedh/nfz-docs-notion-editor:selfhost-0.1.108
vevedh/nfz-docs-notion-editor:selfhost-latestReprise après publication self-host réussie
Si dockerhub:publish:all a déjà publié l'image self-host mais échoue ensuite sur les images commerciales, relancer uniquement :
bun run dockerhub:publish:commercialLe Dockerfile.production utilise l'utilisateur non-root bun fourni par oven/bun:*‑slim; ne pas réintroduire addgroup/adduser dans cette image.