GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Integra Collabora Online con Nextcloud su Ubuntu senza Docker

Questo tutorial ti mostrerà come installare Collabora Online su Ubuntu e quindi integrarlo con un server Nextcloud esistente senza utilizzare Docker.

Collabora in linea è una suite per ufficio online open source self-hostable e basata su LibreOffice. Le sue caratteristiche includono:

  • Modifica di base
  • Rendering WYSIWYG ad alta fedeltà
  • Supporta il formato documento DOC, DOCX, PPT, PPTX, XLS, XLSX, ODF
  • Importa e visualizza Visio, Publisher e oltre 100 altri
  • Modifica condivisa

Collabora è un grande contributore al progetto LibreOffice. Tutti i codici di Collabora Online verranno eventualmente inclusi in LibreOffice.

Nota:questo tutorial funziona su Ubuntu 20.04, 18.04 e 16.04. Se stai usando un'altra versione di Ubuntu, puoi installare Collobaora Online con Docker.

Prerequisiti

Si presume che tu abbia già configurato un server Nextcloud, che può trovarsi su qualsiasi distribuzione Linux. Se non l'hai già fatto, puoi consultare le seguenti guide di facile comprensione.

  • Come installare Nextcloud su Ubuntu 20.04 con LEMP Stack
  • Come installare Nextcloud su Ubuntu 20.04 con LAMP Stack
  • Come installare Nextcloud su CentOS 8 con LEMP Stack
  • Come configurare Nextcloud su Arch Linux

Il server Collabora Online e il server Nextcloud possono trovarsi sulla stessa macchina o su due macchine diverse. Questo tutorial mostra come installare il server online Collabora su Ubuntu utilizzando un'immagine Docker creata da Collabora e Nextcloud. Quindi integralo con un server Nextcloud esistente.

Passaggio 1:installa Collabora Online su Ubuntu dal repository ufficiale

Collabora ha un repository di pacchetti ufficiale per Ubuntu 20.04, 18.04 e 16.04. Esegui il comando seguente per aggiungerlo al tuo sistema Ubuntu.

Ubuntu 20.04

echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2004 ./' | sudo tee /etc/apt/sources.list.d/collabora.list

Ubuntu 18.04

echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu1804 ./' | sudo tee /etc/apt/sources.list.d/collabora.list

Ubuntu 16.04

echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE ./' | sudo tee /etc/apt/sources.list.d/collabora.list

Quindi esegui il comando seguente per scaricare e importare la chiave pubblica Collabora, che consente al gestore di pacchetti APT di verificare l'integrità dei pacchetti scaricati da questo repository.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D

Se non riesci a importare la chiave pubblica con il comando precedente, puoi utilizzare il comando seguente per scaricare e importare la chiave.

wget https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-centos7/repodata/repomd.xml.key && sudo apt-key add repomd.xml.key

Poiché questo repository utilizza la connessione HTTPS, è necessario installare apt-transport-https e ca-certificates pacchetto, in modo che il gestore di pacchetti APT possa stabilire una connessione sicura al repository.

sudo apt install apt-transport-https ca-certificates

Ora aggiorna l'indice del pacchetto locale e installa Collabora Online. Loolwsd è il demone WebSocket di LibreOffice Online.

sudo apt update
sudo apt install loolwsd code-brand

Fase 2:Configura il demone WebSocket di LibreOffice Online

Dopo averli installati, puoi controllare lo stato di loolwsd.

systemctl status loolwsd

Suggerimento :Se il comando precedente non si è chiuso immediatamente, puoi premere il Q chiave per uscire.

Come puoi vedere, non è riuscito ad avviarsi. Possiamo controllare il diario per vedere perché è successo.

sudo journalctl -eu loolwsd

Esempio di output:

Apr 21 16:13:06 ubuntu loolwsd[13842]: File not found: /etc/loolwsd/ca-chain.cert.pem
Apr 21 16:13:06 ubuntu systemd[1]: loolwsd.service: Main process exited, code=exited, status
Apr 21 16:13:06 ubuntu systemd[1]: loolwsd.service: Failed with result 'exit-code'.
Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Service hold-off time over, scheduling r
Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Scheduled restart job, restart counter i
Apr 21 16:13:07 ubuntu systemd[1]: Stopped LibreOffice Online WebSocket Daemon.
Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Start request repeated too quickly.
Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Failed with result 'exit-code'.
Apr 21 16:13:07 ubuntu systemd[1]: Failed to start LibreOffice Online WebSocket Daemon.

Per impostazione predefinita, loolwsd abilita la connessione TLS. Tuttavia, non ha trovato un file di certificato TLS, da qui l'errore di avvio. È meglio disabilitare TLS in loolwsd e terminare TLS su un proxy inverso. Il file di configurazione loolwsd si trova in /etc/loolwsd/loolwsd.xml . Tuttavia, è un file XML, che non è facile da leggere e modificare. Possiamo usare loolconfig strumento per modificare le configurazioni.

Esegui il comando seguente per disabilitare TLS in loolwsd.

sudo loolconfig set ssl.enable false

E abilita la terminazione TLS sul proxy inverso.

sudo loolconfig set ssl.termination true

Per impostazione predefinita, loolwsd consente solo agli host conosciuti di accedere al suo servizio. Per consentire a Nextcloud di accedere al servizio, esegui il comando seguente per aggiungere il tuo nome host Nextcloud alla whitelist.

sudo loolconfig set storage.wopi.host nextcloud.example.com

Puoi anche abilitare l'account amministratore per loolwsd con il comando seguente. Dovrai impostare un nome utente e una password per l'account amministratore.

sudo loolconfig set-admin-password

Riavvia loolwsd per rendere effettive le modifiche.

sudo systemctl restart loolwsd

Ora dovrebbe funzionare senza errori.

systemctl status loolwsd

Uscita:

Fase 3:imposta il proxy inverso

Il server Nextcloud richiede un certificato TLS su Collabora Online, quindi dovremo creare un host virtuale, assegnare all'host virtuale un nome di dominio, impostare un proxy inverso e installare il certificato TLS. Possiamo usare sia Apache o Nginx per raggiungere questo obiettivo.

Apache

Installa il server web Apache con il seguente comando:

sudo apt install apache2

Eseguire il comando seguente per creare un file host virtuale Apache per Collabora Online.

sudo nano /etc/apache2/sites-available/collabora.conf

Inserisci il seguente testo nel file. Sostituisci il nome di dominio con il tuo nome di dominio effettivo per Collabora Online. Non dimenticare di creare un record A per questo sottodominio.

<VirtualHost *:80>
  ServerName collabora.example.com
  Options -Indexes

  ErrorLog "/var/log/apache2/collabora_error"
  # Encoded slashes need to be allowed
  AllowEncodedSlashes NoDecode

  # keep the host
  ProxyPreserveHost On

  # static html, js, images, etc. served from loolwsd
  # loleaflet is the client part of Collabora Online
  ProxyPass           /loleaflet http://127.0.0.1:9980/loleaflet retry=0
  ProxyPassReverse    /loleaflet http://127.0.0.1:9980/loleaflet

  # WOPI discovery URL
  ProxyPass           /hosting/discovery http://127.0.0.1:9980/hosting/discovery retry=0
  ProxyPassReverse    /hosting/discovery http://127.0.0.1:9980/hosting/discovery

  # Capabilities
  ProxyPass           /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities retry=0
  ProxyPassReverse    /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities

  # Main websocket
  ProxyPassMatch "/lool/(.*)/ws$" ws://127.0.0.1:9980/lool/$1/ws nocanon

  # Admin Console websocket
  ProxyPass   /lool/adminws ws://127.0.0.1:9980/lool/adminws

  # Download as, Fullscreen presentation and Image upload operations
  ProxyPass           /lool http://127.0.0.1:9980/lool
  ProxyPassReverse    /lool http://127.0.0.1:9980/lool

</VirtualHost>

Salva e chiudi il file. Per poter eseguire il proxy del traffico utilizzando Apache, dobbiamo abilitare alcuni moduli Apache.

sudo a2enmod proxy proxy_wstunnel proxy_http

Abilita questo host virtuale con il seguente comando:

sudo a2ensite collabora.conf

Quindi riavvia Apache.

sudo systemctl restart apache2

Nginx

Installa Nginx su Ubuntu con il seguente comando:

sudo apt install nginx

Crea un file host virtuale per Collabora Online.

sudo nano /etc/nginx/conf.d/collabora.conf

Inserisci il seguente testo nel file. Sostituisci il nome di dominio con il tuo nome di dominio effettivo per Collabora Online. Non dimenticare di creare un record A per questo nome di dominio.

server {
    listen 80;
    listen [::]:80;
    server_name  collabora.example.com;

    error_log /var/log/nginx/collabora.error;

    # static files
    location ^~ /loleaflet {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # WOPI discovery URL
    location ^~ /hosting/discovery {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # Capabilities
    location ^~ /hosting/capabilities {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # main websocket
    location ~ ^/lool/(.*)/ws$ {
        proxy_pass http://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }

    # download, presentation and image upload
    location ~ ^/lool {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # Admin Console websocket
    location ^~ /lool/adminws {
        proxy_pass http://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }
}

Salva e chiudi il file. Quindi testa le configurazioni di Nginx.

sudo nginx -t

Se il test ha esito positivo, ricarica il server Nginx.

sudo systemctl reload nginx

Fase 4:ottieni e installa il certificato TLS

Ora otteniamo un certificato TLS gratuito da Let's encrypt. Esegui i seguenti comandi per installare il client Let's Encrypt (certbot) dal repository software predefinito.

sudo apt install certbot

Se usi Apache server web, quindi è necessario installare anche il plugin Certbot Apache.

sudo apt install python3-certbot-apache

Quindi emetti il ​​seguente comando per ottenere un certificato TLS/SSL gratuito.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d collabora.example.com

Se usi Nginx server web, quindi è necessario installare il plug-in Certbot Nginx.

sudo apt install python3-certbot-nginx

Quindi usa il plug-in Nginx per ottenere e installare il certificato eseguendo il comando seguente.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d collabora.example.com

Vedrai il seguente testo che indica che hai ottenuto con successo un certificato TLS.

Passaggio finale:connetti Nextcloud a Collabora Online

Nella dashboard di Nextcloud, vai su Apps pagina. Quindi, vai su Office & Text sezione, trova la Collabora Online app, fai clic su Download and Enable pulsante.

(Nota :C'è un'altra app chiamata Collabora Online - Built-in CODE server , che non dovresti installare sul tuo server Nextcloud.)

Dopo aver abilitato questa app, vai su Nextcloud Settings pagina. Fai clic su Collabora Online scheda a sinistra. Per impostazione predefinita, utilizza il server CODE integrato, che non è adatto per l'uso in produzione. Dobbiamo selezionare Use your own server e inserisci il nome di dominio della tua Collabora Online incluso https:// prefisso, quindi fai clic su Save pulsante.

Nelle advance settings , puoi anche impostare OOXML come formato predefinito, in modo che i file siano compatibili con il software Microsoft Office.

Ora, quando fai clic sul pulsante Aggiungi (+) in Nextcloud, sarai in grado di creare documenti Word, fogli di calcolo e presentazioni direttamente dal tuo server Nextcloud.

La console di amministrazione loolwsd è disponibile all'indirizzo https://collabora.example.com/loleaflet/dist/admin/admin.html . Devi inserire il nome utente e la password, che sono stati creati al passaggio 2.

Risoluzione dei problemi

Se Nextcloud ti dice che c Impossibile stabilire la connessione al server Collabora Online , potrebbe essere che il tuo server Nginx sia in esecuzione dietro un proxy inverso come HAProxy e tu abbia le seguenti due righe nel /etc/nginx/nginx.conf .

set_real_ip_from 127.0.0.1;
real_ip_header proxy_protocol;

Ciò significa che Nginx si aspetta una connessione HTTP dal proxy inverso. Dovresti modificare il /etc/nginx/conf.d/collaboara.conf file e aggiungi proxy_protocol alla direttiva di ascolto.

listen 127.0.0.1:443 ssl http2 proxy_protocol;

Quindi modifica il /etc/hosts file e aggiungi un record DNS statico come di seguito. Sostituisci 12.34.56.78 con l'indirizzo IP pubblico del server.

12.34.56.78          collaboara.example.com

collabora.example.com dovrebbe essere puntato all'indirizzo IP pubblico del tuo server. Non puntarlo a 127.0.0.1.

Puoi anche controllare i log di loolwsd per trovare indizi. Forse non funziona.

sudo journalctl -eu loolwsd

E controlla i log del server web.

  • Apache:/var/log/apache2/collabora_error
  • Nginx:/var/log/nginx/collabora.error

Ubuntu
  1. Come creare immagini Docker con un Dockerfile su Ubuntu 16.04 LTS

  2. Come installare WordPress con Docker su Ubuntu

  3. Come gestire i contenitori Docker con Rancher su Ubuntu

  4. Come integrare Alfresco con ONLYOFFICE Online Editor su Ubuntu 14.04

  5. Come integrare Collabora Online con Nextcloud su Ubuntu 20.04

Installazione di Mailtrain sul server Ubuntu 18.04 senza Docker

Installa Mailtrain v1.24 su Ubuntu 20.04 Server senza Docker

Come installare Nextcloud 13 su Ubuntu 16.04 con Nginx

Come installare Mailtrain su Ubuntu 18.04 con Docker

Installa Portainer con Docker su Ubuntu

Come installare WordPress con Docker su Ubuntu 16.04 LTS