draw.io
Déploiement et configuration de draw.io en tant que service Docker Compose optionnel.
📋 Prérequis
Le service draw.io fourni est exposé par le proxy inverse Nginx. Un serveur draw.io externe peut être configuré à la place et ne nécessite ni le conteneur local ni son inclusion Nginx.
⚡ Activation
Suivez ces étapes pour exécuter draw.io localement avec le Docker Compose de Sync-in.
Configuration Nginx
Dans ./config/nginx/nginx.conf, décommentez l'inclusion draw.io située à la fin du fichier :
include drawio.conf;
Dans ./config/nginx/docker-compose.nginx.yaml, vérifiez que la configuration draw.io est montée dans le conteneur Nginx :
services:
nginx:
volumes:
- ./drawio.conf:/etc/nginx/drawio.conf
Le fichier drawio.conf fourni expose le service sous /drawio/ et ajoute l'en-tête CORS requis par l'iframe locale isolée. Conservez cet en-tête
si vous adaptez la configuration du proxy.
Configuration Docker Compose
Dans docker-compose.yaml, décommentez les fichiers Docker Compose nécessaires :
include:
- ./config/nginx/docker-compose.nginx.yaml
- ./config/drawio/docker-compose.drawio.yaml
Le conteneur draw.io écoute sur le port 8080 à l'intérieur du réseau Docker. Aucun port hôte ne doit être publié lorsqu'il est accessible via
Nginx.
Configuration de Sync-in
Dans environment.yaml, activez l'intégration draw.io :
server:
# Optionnelle pour le moment ; obligatoire dans la prochaine version majeure
publicUrl: 'https://sync-in.domain.com'
applications:
files:
editors:
drawio:
enabled: true
Exécutez docker compose up -d && docker compose restart nginx sync_in pour appliquer les modifications.
🌐 Accès
Avec le service local, le navigateur charge draw.io depuis le chemin /drawio/ de l'URL publique de Sync-in. Définissez server.publicUrl avec
l'adresse exacte utilisée pour accéder à Sync-in, y compris tout port non standard. Si ce paramètre est absent, Sync-in utilise l'origine de la
requête transmise par Nginx comme solution de repli pour assurer la compatibilité.
Pour utiliser un déploiement draw.io existant, n'incluez pas le service Compose draw.io local ni drawio.conf. Configurez son URL accessible depuis
les navigateurs comme suit :
applications:
files:
editors:
drawio:
enabled: true
externalServer: 'https://drawio.my-domain.com'
Pour assurer l'isolation, utilisez une origine dédiée pour un serveur draw.io externe plutôt que de le servir depuis l'origine de Sync-in. Sync-in ajoute automatiquement l'origine configurée à sa politique de sécurité du contenu (CSP) ; aucune directive CSP manuelle n'est nécessaire.
Formats pris en charge
- Les fichiers
.drawioet.dwbpeuvent être consultés et modifiés directement. - Les fichiers
.vsdxet.gliffypeuvent être ouverts sans modifier le fichier source. L'enregistrement des changements crée un nouveau fichier.drawiodans le même répertoire après avoir demandé son nom.
Sync-in utilise un verrou exclusif pendant la modification des fichiers draw.io natifs.