Déployer ActuaryLab (Dokploy) — doc incluse comme service¶
ActuaryLab se déploie en un seul stack Compose sur le VPS Dokploy. La documentation
n'est pas un déploiement à part : c'est le service docs du même compose, géré
au même titre que backend, frontend (et, à terme, minio, db).
Le service docs¶
Dans docker-compose.yml :
docs:
build:
context: .
dockerfile: docs/Dockerfile # mkdocs build → nginx:alpine
expose:
- "80"
restart: unless-stopped
networks: [default, dokploy-network]
Modèle doc-as-service : à chaque push, Dokploy rebuild l'image docs ; mkdocs build
tourne dans Docker ; nginx sert le site statique. Aucun artefact de build committé,
aucun volume.
Sur Dokploy¶
- Projet Compose pointant sur le dépôt ActuaryLab, branche de prod, compose path
docker-compose.yml. - Onglet Environment : remplir les variables (cf.
.env.production.example). - Onglet Domains — une entrée par service exposé :
| Service | Hostname | Port | HTTPS |
|---|---|---|---|
frontend |
app.quantis-actuarylab.nedcore.net |
3000 | letsencrypt |
backend |
api.quantis-actuarylab.nedcore.net |
8000 | letsencrypt |
docs |
docs.quantis-actuarylab.nedcore.net |
80 | letsencrypt |
- Deploy. La doc est en ligne sur
docs.quantis-actuarylab.nedcore.neten même temps que le reste du module.
Mettre à jour la doc¶
Workflow cible : on termine un travail → on met à jour les pages sous docs/ → on
commit + push → Dokploy redéploie → la page web reflète la nouvelle doc. La doc suit
ainsi le versionnage du code (même dépôt, même cycle de release).
Pièges (VPS partagé Dokploy)¶
dokploy-networkexterne : le servicedocsdoit y être attaché (déjà dans le compose) sinon Traefik ne le voit pas → 502.exposeet nonports: pas de publication d'hôte ; Traefik route en interne. Unports:provoquerait un conflit de port sur le VPS partagé.- Rebuild obligatoire après changement de doc : pas de volume monté — toute modif
docs/**impose un nouveau Deploy (rebuild d'image), pas un simple restart. - DNS Traefik périmé après redeploy : 502 transitoire possible juste après un redéploiement, le temps que Traefik rafraîchisse l'IP du conteneur.
Versionner le portail (ultérieur)¶
Si un portail multi-versions devient nécessaire, MkDocs Material fournit mike (une
version par sous-dossier + sélecteur), à baker dans l'image. Non nécessaire au démarrage :
le service sert l'état courant de la branche déployée.