draw.io
Distribuzione e configurazione di draw.io come servizio Docker Compose opzionale.
📋 Prerequisiti
Il servizio draw.io incluso viene esposto tramite il reverse proxy Nginx. In alternativa è possibile configurare un server draw.io esterno, che non richiede né il container locale né la relativa inclusione Nginx.
⚡ Attivazione
Seguire questi passaggi per eseguire draw.io in locale con la configurazione Docker Compose di Sync-in.
Configurazione di Nginx
In ./config/nginx/nginx.conf, rimuovere il commento dall'inclusione di draw.io alla fine del file:
include drawio.conf;
In ./config/nginx/docker-compose.nginx.yaml, verificare che la configurazione di draw.io sia montata nel container Nginx:
services:
nginx:
volumes:
- ./drawio.conf:/etc/nginx/drawio.conf
Il file drawio.conf fornito espone il servizio nel percorso /drawio/ e aggiunge l'intestazione CORS richiesta dall'iframe locale isolato. Mantenere questa intestazione quando si adatta la configurazione del proxy.
Configurazione di Docker Compose
In docker-compose.yaml, rimuovere il commento dai file Docker Compose necessari:
include:
- ./config/nginx/docker-compose.nginx.yaml
- ./config/drawio/docker-compose.drawio.yaml
Il container draw.io è in ascolto sulla porta 8080 all'interno della rete Docker. Non è necessario pubblicare alcuna porta sull'host quando l'accesso avviene tramite Nginx.
Configurazione di Sync-in
In environment.yaml, attivare l'integrazione con draw.io:
server:
# Facoltativo per ora; obbligatorio nella prossima versione principale
publicUrl: 'https://sync-in.domain.com'
applications:
files:
editors:
drawio:
enabled: true
Eseguire docker compose up -d && docker compose restart nginx sync_in per applicare le modifiche.
🌐 Accesso
Con il servizio locale, il browser carica draw.io dal percorso /drawio/ dell'URL pubblico di Sync-in. Impostare server.publicUrl sull'indirizzo esatto utilizzato per accedere a Sync-in, includendo l'eventuale porta non standard. Se omesso, Sync-in utilizza come soluzione di compatibilità l'origine della richiesta inoltrata da Nginx.
Per utilizzare invece un'installazione draw.io esistente, non includere il servizio Compose draw.io locale né drawio.conf. Configurare il relativo URL, accessibile dal browser, nel modo seguente:
applications:
files:
editors:
drawio:
enabled: true
externalServer: 'https://drawio.my-domain.com'
Per garantire l'isolamento, utilizzare un'origine dedicata per un server draw.io esterno anziché pubblicarlo dalla stessa origine di Sync-in. Sync-in aggiunge automaticamente l'origine configurata alla propria Content Security Policy; non è necessaria alcuna direttiva CSP manuale.
Formati supportati
- I file
.drawioe.dwbpossono essere visualizzati e modificati direttamente. - I file
.vsdxe.gliffypossono essere aperti senza modificare il file sorgente. Quando si salvano le modifiche, viene creato un nuovo file.drawionella stessa directory, dopo averne richiesto il nome.
Sync-in utilizza un blocco esclusivo del file durante la modifica dei file draw.io nativi.