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