GNU/Linux >> Znalost Linux >  >> Ubuntu

Integrujte Collabora Online s Nextcloud na Ubuntu bez Dockeru

Tento tutoriál vám ukáže, jak nainstalovat Collabora Online na Ubuntu a poté ji integrovat se stávajícím serverem Nextcloud bez použití Dockeru.

Spolupracujte online je samostatně hostovatelný a otevřený online kancelářský balík založený na LibreOffice. Mezi jeho vlastnosti patří:

  • Základní úpravy
  • Vysoce věrné vykreslování WYSIWYG
  • Podporuje formát dokumentů DOC, DOCX, PPT, PPTX, XLS, XLSX, ODF
  • Importujte a zobrazujte Visio, Publisher a 100+ dalších
  • Sdílené úpravy

Collabora je velkým přispěvatelem do projektu LibreOffice. Všechny kódy Collabora Online budou nakonec zahrnuty do LibreOffice.

Poznámka:Tento tutoriál funguje na Ubuntu 20.04, 18.04 a 16.04. Pokud používáte jinou verzi Ubuntu, můžete nainstalovat Collobaora Online pomocí Docker.

Předpoklady

Předpokládá se, že jste již nastavili server Nextcloud, který může být na jakékoli distribuci Linuxu. Pokud jste tak ještě neučinili, můžete se podívat na následující snadno srozumitelné průvodce.

  • Jak nainstalovat Nextcloud na Ubuntu 20.04 s LEMP Stack
  • Jak nainstalovat Nextcloud na Ubuntu 20.04 s LAMP Stack
  • Jak nainstalovat Nextcloud na CentOS 8 s LEMP Stack
  • Jak nastavit Nextcloud na Arch Linux

Server Collabora Online a server Nextcloud mohou být na stejném počítači nebo na dvou různých počítačích. Tento tutoriál ukazuje, jak nainstalovat online server Collabora na Ubuntu pomocí obrazu Docker vytvořeného společnostmi Collabora a Nextcloud. Poté jej integrujte se stávajícím serverem Nextcloud.

Krok 1:Nainstalujte Collabora Online na Ubuntu z oficiálního úložiště

Collabora má oficiální úložiště balíčků pro Ubuntu 20.04, 18.04 a 16.04. Spusťte následující příkaz a přidejte jej do svého systému 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

Poté spusťte následující příkaz pro stažení a import veřejného klíče Collabora, který umožňuje správci balíčků APT ověřit integritu balíčků stažených z tohoto úložiště.

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

Pokud nemůžete importovat veřejný klíč pomocí výše uvedeného příkazu, můžete klíč stáhnout a importovat pomocí následujícího příkazu.

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

Protože toto úložiště používá připojení HTTPS, musíme nainstalovat apt-transport-https a ca-certificates balíček, takže správce balíčků APT může vytvořit zabezpečené připojení k úložišti.

sudo apt install apt-transport-https ca-certificates

Nyní aktualizujte místní index balíčků a nainstalujte Collabora Online. Loolwsd je LibreOffice Online WebSocket Daemon.

sudo apt update
sudo apt install loolwsd code-brand

Krok 2:Konfigurace LibreOffice Online WebSocket Daemon

Po jejich instalaci můžete zkontrolovat stav loolwsd.

systemctl status loolwsd

Nápověda :Pokud se výše uvedený příkaz okamžitě neukončí, můžete stisknout Q klíč k ukončení.

Jak vidíte, nepodařilo se spustit. Můžeme se podívat do deníku, abychom viděli, proč se to stalo.

sudo journalctl -eu loolwsd

Ukázkový výstup:

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.

Ve výchozím nastavení loolwsd umožňuje připojení TLS. Nenašel však soubor certifikátu TLS, a proto se spuštění nezdařilo. Je lepší zakázat TLS v loolwsd a ukončit TLS na reverzním proxy. Konfigurační soubor loolwsd se nachází na adrese /etc/loolwsd/loolwsd.xml . Je to však soubor XML, který není snadné číst a upravovat. Můžeme použít loolconfig nástroj pro změnu konfigurací.

Spuštěním následujícího příkazu zakážete TLS v loolwsd.

sudo loolconfig set ssl.enable false

A povolit ukončení TLS na reverzním proxy.

sudo loolconfig set ssl.termination true

Ve výchozím nastavení loolwsd umožňuje přístup ke své službě pouze známým hostitelům. Chcete-li povolit Nextcloudu přístup ke službě, spusťte následující příkaz a přidejte svůj název hostitele Nextcloud na bílou listinu.

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

Účet správce pro loolwsd můžete také povolit pomocí následujícího příkazu. Budete muset nastavit uživatelské jméno a heslo pro účet správce.

sudo loolconfig set-admin-password

Restartujte loolwsd, aby se změny projevily.

sudo systemctl restart loolwsd

Nyní by měl běžet bez chyb.

systemctl status loolwsd

Výstup:

Krok 3:Nastavení Reverse Proxy

Server Nextcloud vyžaduje certifikát TLS na Collabora Online, takže budeme muset vytvořit virtuálního hostitele, dát virtuálnímu hostiteli název domény, nastavit reverzní proxy a nainstalovat certifikát TLS. Můžeme použít buď Apache nebo Nginx abyste toho dosáhli.

Apache

Nainstalujte webový server Apache pomocí následujícího příkazu:

sudo apt install apache2

Spuštěním následujícího příkazu vytvořte soubor virtuálního hostitele Apache pro Collabora Online.

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

Do souboru vložte následující text. Nahraďte název domény svým skutečným názvem domény pro Collabora Online. Nezapomeňte pro tuto subdoménu vytvořit záznam A.

<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>

Uložte a zavřete soubor. Abychom mohli provozovat proxy server pomocí Apache, musíme povolit některé moduly Apache.

sudo a2enmod proxy proxy_wstunnel proxy_http

Povolte tohoto virtuálního hostitele pomocí následujícího příkazu:

sudo a2ensite collabora.conf

Poté restartujte Apache.

sudo systemctl restart apache2

Nginx

Nainstalujte Nginx na Ubuntu pomocí následujícího příkazu:

sudo apt install nginx

Vytvořte soubor virtuálního hostitele pro Collabora Online.

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

Do souboru vložte následující text. Nahraďte název domény svým skutečným názvem domény pro Collabora Online. Nezapomeňte pro tento název domény vytvořit záznam A.

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;
    }
}

Uložte a zavřete soubor. Poté otestujte konfigurace Nginx.

sudo nginx -t

Pokud je test úspěšný, znovu načtěte server Nginx.

sudo systemctl reload nginx

Krok 4:Získejte a nainstalujte certifikát TLS

Nyní získáme bezplatný certifikát TLS od společnosti Let’s encrypt. Spuštěním následujících příkazů nainstalujte klienta Let’s Encrypt (certbot) z výchozího softwarového úložiště.

sudo apt install certbot

Pokud používáte Apache webový server, musíte také nainstalovat plugin Certbot Apache.

sudo apt install python3-certbot-apache

Poté zadejte následující příkaz, abyste získali bezplatný certifikát TLS/SSL.

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

Pokud používáte Nginx webový server, musíte nainstalovat plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Poté pomocí pluginu Nginx získejte a nainstalujte certifikát spuštěním následujícího příkazu.

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

Zobrazí se následující text označující, že jste úspěšně získali certifikát TLS.

Poslední krok:Připojte Nextcloud ke Collabora Online

Na hlavním panelu Nextcloud přejděte na Apps strana. Dále přejděte na Office & Text v sekci Collabora Online klikněte na Download and Enable tlačítko.

(Poznámka :Existuje další aplikace s názvem Collabora Online - Built-in CODE server , který byste neměli instalovat na svůj server Nextcloud.)

Po povolení této aplikace přejděte na Nextcloud Settings strana. Klikněte na Collabora Online záložka vlevo. Ve výchozím nastavení používá vestavěný server CODE, který není vhodný pro produkční použití. Musíme vybrat Use your own server a zadejte název domény svého Collabora Online včetně https:// prefix a poté klikněte na Save tlačítko.

V advance settings , můžete také nastavit OOXML jako výchozí formát, takže soubory budou kompatibilní se softwarem Microsoft Office.

Nyní, když v Nextcloud kliknete na tlačítko Přidat (+), budete moci vytvářet dokumenty Word, tabulky a prezentace přímo ze serveru Nextcloud.

Administrátorská konzole loolwsd je k dispozici na adrese https://collabora.example.com/loleaflet/dist/admin/admin.html . Musíte zadat uživatelské jméno a heslo, které bylo vytvořeno v kroku 2.

Odstraňování problémů

Pokud vám Nextcloud řekne, že c Nepodařilo se navázat připojení k serveru Collabora Online , může se stát, že váš server Nginx běží za reverzním proxy serverem, jako je HAProxy, a v /etc/nginx/nginx.conf máte následující dva řádky .

set_real_ip_from 127.0.0.1;
real_ip_header proxy_protocol;

To znamená, že Nginx očekává HTTP připojení od reverzního proxy. Měli byste upravit /etc/nginx/conf.d/collaboara.conf a přidejte proxy_protocol k direktivě listen.

listen 127.0.0.1:443 ssl http2 proxy_protocol;

Poté upravte /etc/hosts a přidejte statický záznam DNS, jak je uvedeno níže. Nahraďte 12.34.56.78 s veřejnou IP adresou serveru.

12.34.56.78          collaboara.example.com

collabora.example.com by měla být směřována na veřejnou IP adresu vašeho serveru. Neukazujte to na 127.0.0.1.

Můžete také zkontrolovat protokoly loolwsd, abyste našli stopy. Možná neběží.

sudo journalctl -eu loolwsd

A zkontrolujte protokoly webového serveru.

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

Ubuntu
  1. Jak nainstalovat WordPress s Dockerem na Ubuntu

  2. Jak integrovat Alfresco s ONLYOFFICE Online Editor na Ubuntu 14.04

  3. Jak integrovat Collabora Online s Nextcloud na Ubuntu 20.04

  1. Jak vytvořit Docker Images pomocí Dockerfile na Ubuntu 16.04 LTS

  2. Jak spravovat kontejnery Docker pomocí Rancher na Ubuntu

  3. Jak nainstalovat ONLYOFFICE 8.9.0 s Dockerem na Ubuntu

  1. Dockerizing LEMP Stack pomocí Docker-Compose na Ubuntu

  2. Jak nainstalovat GitLab s Dockerem na Ubuntu 20.04 LTS

  3. Jak integrovat editory ONLYOFFICE s Moodle na Ubuntu