Questo articolo è stato tradotto dall’AI

Installazione di ONLYOFFICE Docs per Docker su KylinOS

Introduzione

Developer Edition ti consente di installare ONLYOFFICE Docs sul tuo server locale e integrare gli editor online con la tua applicazione web, la piattaforma di collaborazione ONLYOFFICE o altri sistemi popolari.

ONLYOFFICE Docs è una suite per ufficio online che comprende visualizzatori ed editor per testi, fogli di calcolo e presentazioni, completamente compatibile con i formati Office Open XML: .docx, .xlsx, .pptx e che consente l'editing collaborativo in tempo reale.

Funzionalità

  • Editor di documenti
  • Editor di fogli di calcolo
  • Editor di presentazioni
  • Visualizzatori web mobili
  • Editor web mobili
  • Editing collaborativo
  • Supporto per geroglifici
  • Supporto per tutti i formati popolari: DOC, DOCX, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, XLSX, CSV, PPTX, HTML

Consulta l'elenco dettagliato delle funzionalità disponibili per ONLYOFFICE Docs Developer Edition.

Utilizzandolo all'interno di ONLYOFFICE Workspace, sarai in grado di:

  • condividere file;
  • gestire i diritti di accesso ai documenti;
  • incorporare documenti su un sito web;
  • visualizzare e modificare file archiviati su Drive, Box, Dropbox, OneDrive, OwnCloud collegati a ONLYOFFICE.

A partire dalla versione 7.2, le immagini Docker di ONLYOFFICE Docs sono state rielaborate per funzionare su Kylin Linux Advanced Server OS release V10. Questa guida ti mostrerà come installare la versione Docker di ONLYOFFICE Docs Developer Edition su KylinOS.

Requisiti di sistema
  • CPU
    dual core 2 GHz o superiore
  • RAM
    4 GB o più
  • HDD
    almeno 40 GB di spazio libero
  • SWAP
    almeno 4 GB, ma dipende dal sistema operativo host. Più è meglio
  • OS
    Distribuzione Linux amd64 con versione del kernel 3.10 o successiva
  • Docker: qualsiasi versione supportata da KylinOS

Installazione di ONLYOFFICE Docs

Docker specifica i server DNS di Google per impostazione predefinita. Se il tuo ONLYOFFICE Docs non avrà accesso a Internet, ti consigliamo di cambiare l'indirizzo DNS predefinito di Docker con l'indirizzo del tuo server DNS locale. Per farlo, vai al file /etc/default/docker e cambia l'indirizzo IP nella seguente riga con l'indirizzo IP di un server DNS nella tua rete locale:
docker_OPTS="--dns 8.8.8.8"

Per i sistemi operativi basati su RPM come CentOS:

  1. Crea il file di configurazione /etc/docker/daemon.json con il seguente contenuto:
    { "dns" : [ "8.8.8.8" ] }
  2. Riavvia il servizio Docker:
    
    sudo systemctl restart docker.service
Disabilitare SELinux

È necessario disabilitare SELinux nel file di configurazione /etc/selinux/config.

Apri il file /etc/selinux/config utilizzando un qualsiasi editor di testo, sostituisci la stringa SELINUX=enforcing o SELINUX=permissive con SELINUX=disabled e salva le modifiche.

Riavvia il server affinché le modifiche abbiano effetto. Assicurati che SELinux sia disabilitato:

[root@test ~]# sestatus
SELinux status:                 disabled
Installare ONLYOFFICE Docs

Esegui il seguente comando per installare ONLYOFFICE Docs:

sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Importante A partire dalla versione 7.2, abbiamo aggiunto una generazione casuale del segreto JWT. Se il segreto JWT non è specificato con la variabile d'ambiente, questo porta alla sua rigenerazione durante ogni riavvio delle VM o del server fisico, quindi potrebbero esserci problemi nelle integrazioni. Per evitare questo problema, specifica il tuo valore in -e JWT_SECRET=my_jwt_secret.

Se non hai intenzione di utilizzare JWT nella tua installazione, usa -e JWT_ENABLED=false.

La chiave --security-opt seccomp=unconfined è necessaria per disabilitare i profili di sicurezza per il container. Maggiori dettagli possono essere trovati qui.

Puoi anche utilizzare il nostro profilo di sicurezza personalizzato: kylin-seccomp7.json.

Per impostazione predefinita, ONLYOFFICE Docs ascolta le connessioni in entrata utilizzando la porta 80. A partire dalla versione 4.3, puoi cambiare la porta per ONLYOFFICE Docs se prevedi di utilizzarla al posto di quella predefinita. Questo può essere facilmente fatto cambiando la porta di mapping durante l'installazione:
sudo docker run -i -t -d -p <PORT_NUMBER>:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Dove <PORT_NUMBER> è il numero della porta che vuoi che ONLYOFFICE Docs utilizzi.

Questo installerà ONLYOFFICE Docs e tutte le dipendenze necessarie (l'elenco di ciò che viene fatto dallo script può essere trovato qui).

Aggiungere un'eccezione al firewall

È inoltre necessario aggiungere un'eccezione al servizio firewalld.service:

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

Una volta completata la configurazione, puoi inserire http://localhost nella barra degli indirizzi del tuo browser per aprire la pagina di benvenuto di ONLYOFFICE Docs, dove troverai ulteriori istruzioni su come abilitare esempi di documenti o integrare editor online nella tua applicazione web utilizzando l'API fornita.

Memorizzare i dati al di fuori dei container

Tutti i dati sono memorizzati in directory appositamente designate, volumi di dati, nella seguente posizione:

  • /var/log/onlyoffice per i log di ONLYOFFICE Docs
  • /var/www/onlyoffice/Data per i certificati
  • /var/lib/onlyoffice per la cache dei file
  • /var/lib/postgresql per il database
Consigliamo Consigliamo vivamente di memorizzare i dati al di fuori dei container Docker sulla macchina host poiché ciò ti consente di aggiornare facilmente ONLYOFFICE Docs una volta rilasciata la nuova versione senza perdere i tuoi dati.

Per ottenere l'accesso ai tuoi dati situati al di fuori del container, è necessario montare i volumi. Questo può essere fatto specificando l'opzione -v nel comando docker run.

sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always \
    -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice  \
    -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  \
    -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
    -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Si prega di notare che nel caso in cui si tenti di montare le cartelle che non sono ancora state create, queste cartelle verranno create ma l'accesso ad esse sarà limitato. Sarà necessario modificare manualmente i loro diritti di accesso.

Normalmente, non è necessario memorizzare i dati del container perché il funzionamento del container non dipende dal suo stato. Salvare i dati sarà utile:

  • per un facile accesso ai dati del container, come i log;
  • per rimuovere il limite sulla dimensione dei dati all'interno del container;
  • quando si utilizzano servizi avviati al di fuori del container come PostgreSQL, Redis, RabbitMQ.

Esecuzione di ONLYOFFICE Docs utilizzando HTTPS

sudo docker run -i -t -d -p 443:443 --security-opt seccomp=unconfined --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de

L'accesso all'applicazione onlyoffice può essere protetto utilizzando SSL per prevenire accessi non autorizzati. Mentre un certificato SSL certificato da CA consente la verifica della fiducia tramite la CA, i certificati autofirmati possono anche fornire un livello di verifica della fiducia equivalente purché ogni client prenda alcuni passaggi aggiuntivi per verificare l'identità del tuo sito web. Le istruzioni per ottenere questo risultato sono fornite di seguito.

Per proteggere l'applicazione tramite SSL, sono essenzialmente necessari due elementi:

  • Chiave privata (.key)
  • Certificato SSL (.crt)

Quindi è necessario creare e installare i seguenti file:

/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt

Quando si utilizzano certificati certificati da CA (ad esempio Let's Encrypt), questi file vengono forniti dalla CA. Se si utilizzano certificati autofirmati, è necessario generare questi file da soli.

Passaggio di ONLYOFFICE Docs a HTTPS utilizzando certbot

Il modo più semplice per passare ONLYOFFICE Docs a HTTPS è ottenere automaticamente i certificati SSL di Let's Encrypt utilizzando certbot.

Esegui il container Docker di ONLYOFFICE Docs, specificando le porte 80 e 443 e impostando i tuoi valori per le variabili:

sudo docker run -i -t -d -p 80:80 -p 443:443 --security-opt seccomp=unconfined --restart=always \
    -e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de

Dove:

  • LETS_ENCRYPT_DOMAIN - un nome di dominio da utilizzare per il certificato.
  • LETS_ENCRYPT_MAIL - un'email utilizzata per la registrazione e il contatto di recupero.

Il certificato firmato da CA letsencrypt.org sarà generato e installato automaticamente sul tuo server. Ora, il tuo ONLYOFFICE Docs dovrebbe essere disponibile all'indirizzo https://yourdomain.com.

Generazione di certificati autofirmati

La generazione di certificati SSL autofirmati comporta una semplice procedura in 3 passaggi

PASSO 1: Creare la chiave privata del server

openssl genrsa -out onlyoffice.key 2048

PASSO 2: Creare la richiesta di firma del certificato (CSR)

openssl req -new -key onlyoffice.key -out onlyoffice.csr

PASSO 3: Firmare il certificato utilizzando la chiave privata e il CSR

openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt

Hai ora generato un certificato SSL valido per 365 giorni.

Rafforzare la sicurezza del server

Questa sezione fornisce istruzioni per rafforzare la sicurezza del tuo server.

Per ottenere questo, è necessario generare parametri DHE più robusti.

openssl dhparam -

out dhparam.pem 2048
Installazione dei certificati SSL

Dei quattro file generati sopra, è necessario installare i file onlyoffice.key, onlyoffice.crt e dhparam.pem sul server onlyoffice. Il file CSR non è necessario, ma assicurati di eseguire un backup sicuro del file (nel caso in cui ne avessi bisogno in futuro).

Il percorso predefinito in cui l'applicazione onlyoffice è configurata per cercare i certificati SSL è /var/www/onlyoffice/Data/certs, tuttavia, questo può essere modificato utilizzando le opzioni di configurazione SSL_KEY_PATH, SSL_CERTIFICATE_PATH e SSL_DHPARAM_PATH.

Il percorso /var/www/onlyoffice/Data/ è il percorso dell'archivio dati, il che significa che devi creare una cartella chiamata certs all'interno di /app/onlyoffice/DocumentServer/data/ e copiare i file al suo interno e, come misura di sicurezza, aggiornerai i permessi sul file onlyoffice.key per renderlo leggibile solo dal proprietario.

mkdir -p /app/onlyoffice/DocumentServer/data/certs
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key

E riavvia il container Docker:

sudo docker restart {{DOCUMENT_SERVER_ID}}

Ora sei a un solo passo dall'avere la nostra applicazione sicura.

Parametri di configurazione disponibili
Consulta le opzioni del comando docker run per il flag --env-file, dove puoi specificare tutte le variabili d'ambiente richieste in un unico file. Questo ti eviterà di scrivere un comando docker run potenzialmente lungo.

Di seguito è riportato l'elenco completo dei parametri che possono essere impostati utilizzando le variabili d'ambiente.

  • ONLYOFFICE_HTTPS_HSTS_ENABLED: Opzione di configurazione avanzata per disattivare la configurazione HSTS. Applicabile solo quando SSL è in uso. Il valore predefinito è true.
  • ONLYOFFICE_HTTPS_HSTS_MAXAGE: Opzione di configurazione avanzata per impostare il max-age HSTS nella configurazione vHost di onlyoffice NGINX. Applicabile solo quando SSL è in uso. Il valore predefinito è 31536000.
  • SSL_CERTIFICATE_PATH: Il percorso del certificato SSL da utilizzare. Il valore predefinito è /var/www/onlyoffice/Data/certs/tls.crt.
  • SSL_KEY_PATH: Il percorso della chiave privata del certificato SSL. Il valore predefinito è /var/www/onlyoffice/Data/certs/tls.key.
  • SSL_DHPARAM_PATH: Il percorso del parametro Diffie-Hellman. Il valore predefinito è /var/www/onlyoffice/Data/certs/dhparam.pem.
  • SSL_VERIFY_CLIENT: Abilita la verifica dei certificati client utilizzando il CA_CERTIFICATES_PATH file. Il valore predefinito è false.
  • DB_TYPE: Il tipo di database. I valori supportati sono postgres, mariadb o mysql. Il valore predefinito è postgres.
  • DB_HOST: L'indirizzo IP o il nome dell'host dove è in esecuzione il server del database.
  • DB_PORT: Il numero di porta del server del database.
  • DB_NAME: Il nome di un database da creare all'avvio dell'immagine.
  • DB_USER: Il nuovo nome utente con permessi di superuser per l'account del database.
  • DB_PWD: La password impostata per l'account del database.
  • AMQP_URI: L'URI AMQP per connettersi al server del broker di messaggi.
  • AMQP_TYPE: Il tipo di broker di messaggi. I valori supportati sono rabbitmq o activemq. Il valore predefinito è rabbitmq.
  • REDIS_SERVER_HOST: L'indirizzo IP o il nome dell'host dove è in esecuzione il server Redis.
  • REDIS_SERVER_PORT: Il numero di porta del server Redis.
  • NGINX_WORKER_PROCESSES: Definisce il numero di processi worker NGINX.
  • NGINX_WORKER_CONNECTIONS: Imposta il numero massimo di connessioni simultanee che possono essere aperte da un processo worker NGINX.
  • SECURE_LINK_SECRET: Definisce il segreto per la direttiva di configurazione nginx secure_link_md5. Il valore predefinito è random string.
  • JWT_ENABLED: Specifica l'abilitazione della validazione del token web JSON da parte di ONLYOFFICE Docs. Il valore predefinito è true.
  • JWT_SECRET: Definisce la chiave segreta per validare il token web JSON nella richiesta a ONLYOFFICE Docs. Il valore predefinito è un valore casuale.
  • JWT_HEADER: Definisce l'intestazione HTTP che verrà utilizzata per inviare il token web JSON. Il valore predefinito è Authorization.
  • JWT_IN_BODY: Specifica l'abilitazione della validazione del token nel corpo della richiesta a ONLYOFFICE Docs. Il valore predefinito è false.
  • WOPI_ENABLED: Specifica l'abilitazione dei gestori wopi. Il valore predefinito è false.
  • USE_UNAUTHORIZED_STORAGE: Imposta su true se si utilizzano certificati autofirmati per il server di archiviazione, ad esempio Nextcloud. Il valore predefinito è false.
  • GENERATE_FONTS: Quando true, rigenera l'elenco dei font e le miniature dei font ecc. ad ogni avvio. Il valore predefinito è true.
  • METRICS_ENABLED: Specifica l'abilitazione di StatsD per ONLYOFFICE Docs. Il valore predefinito è false.
  • METRICS_HOST: Definisce l'host di ascolto di StatsD. Il valore predefinito è localhost.
  • METRICS_PORT: Definisce la porta di ascolto di StatsD. Il valore predefinito è 8125.
  • METRICS_PREFIX: Definisce il prefisso delle metriche StatsD per i servizi backend. Il valore predefinito è ds..
  • LETS_ENCRYPT_DOMAIN: Definisce il dominio per il certificato Let's Encrypt.
  • LETS_ENCRYPT_MAIL: Definisce l'indirizzo email dell'amministratore del dominio per il certificato Let's Encrypt.

Registrazione della tua versione Developer Edition

Se hai acquistato la Developer Edition e hai ricevuto il file license.lic, puoi posizionarlo nella tua installazione per ottenere la versione completa del software.

Quando utilizzi il container docker, il file license.lic può essere posizionato in qualsiasi cartella (ad es. /app/onlyoffice/DocumentServer/data/license.lic), ma sarà necessario montare questa cartella quando il container si avvia:

sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de

Dopo di ciò, la tua versione di Developer Edition sarà registrata e completa di tutte le funzionalità.

Voci con l'etichetta tag:
Sfoglia tutti i tag