Jak možná víte, Nextcloud je řešení cloudového úložiště s vlastním hostitelem a OnlyOffice je samoobslužný online kancelářský dokumentový server. Tento tutoriál vám ukáže, jak integrovat OnlyOffice s Nextcloud , takže budete moci upravovat kancelářské dokumenty (DOCX, XLSX, PPTX atd.) přímo z webového rozhraní NextCloud.
Funkce integrační aplikace Nextcloud OnlyOffice
- Plně vybavený textový editor dostupný online se všemi funkcemi desktopových editorů.
- 100% zobrazení, konverze, tisk a věrnost stránkování.
- Umožňuje přidávat odkazy, tabulky, grafy, vkládat obrázky, automatické tvary, vzorce, textové objekty a manipulovat s nimi, vytvářet seznamy s odrážkami nebo číslované seznamy.
- Úpravy ve spolupráci s vašimi spoluhráči v reálném čase:zobrazte změny okamžitě nebo až po uložení. Ke kontrole a sledování změn použijte komentáře a vestavěný chat.
- Podporuje úpravy a ukládání souborů DOCX, XLSX, PPTX, TXT. Soubor můžete také uložit v jiných formátech, jako je ODT, ODS, ODP, DOC, XLS, PPT, PPS, EPUB, RTF, HTML, HTM.
- Plně kompatibilní s formáty Office Open XML:.docx, .xlsx, .pptx
- Automaticky ukládat soubory, abyste nepřišli o svou práci.
- Podporuje latinku, znaky CJK (čínština, japonština, korejština).
Předpoklady
Dokumentový server OnlyOffice vyžaduje alespoň 2jádrový procesor a 2 GB RAM. Aby to s Nextcloud fungovalo hladce, doporučuji použít server se 4jádrovým CPU a 4GB RAM. Můžete si koupit výkonný VPS od Contabo s velmi nízkou cenou. Pokud je uživatelů mnoho, měli byste zvážit aktualizaci specifikací serveru.
Contabo má datová centra pouze v Německu. Pokud potřebujete VPS hostované v USA, doporučuji Turnkey Internet, který nabízí 4jádrový CPU, 8GB RAM VPS za 9,99 USD/měsíc.
K dokončení tohoto průvodce potřebujete funkční server Nextcloud. Pokud jste tak ještě neučinili, přečtěte si prosím následující článek a nejprve nastavte server Nextcloud.
- Nainstalujte NextCloud na Ubuntu 18.04 s Nginx (LEMP Stack)
Poté si přečtěte následující pokyny k integraci OnlyOffice a Nextcloud. Dokumentový server OnlyOffice a server Nextcloud lze nainstalovat na dva různé hostitele Začínáme.
Krok 1:Nainstalujte dokumentový server ONLYOFFICE na Ubuntu
Dokumentový server OnlyOffice závisí na PostgreSQL, Node.js, Redis Server, RabbitMQ serveru a Nginx. Následující kroky jsou testovány na serveru Ubuntu 18.04 ale měl by být také použitelný pro distribuce Linuxu v rodině Debian.
Nainstalujte PostgreSQL z úložiště Ubuntu
sudo apt install postgresql
Poté vytvořte onlyoffice
databáze.
sudo -i -u postgres psql -c "CREATE DATABASE onlyoffice;"
Vytvořte onlyoffice
uživatel.
sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';"
Udělte povolení.
sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"
Poznámka :Uživatelské jméno i heslo musí být onlyoffice
.
Nainstalujte NodeJS z oficiálního úložiště
Dokumentový server OnlyOffice vyžaduje nodejs verze 8.12.0+, ale verze v úložišti Ubuntu je zastaralá, takže budeme muset nainstalovat nejnovější verzi LTS (12.13.1) Node.js z upstream úložiště.
Přidejte úložiště Node.js.
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
Nainstalujte Node.js.
sudo apt install nodejs -y
Zkontrolujte verzi Node.js.
node -v
Ukázkový výstup:
v12.13.1
Nainstalujte server Redis a Rabbitmq
sudo apt install redis-server rabbitmq-server
Zkontrolujte jejich stav.
systemctl status redis-server systemctl status rabbitmq-server
Měli byste vidět, že jsou aktivní (běžící) . Pokud rabbitmq-server
se nepodařilo spustit, je to většinou kvůli nedostatku paměti na počítači nebo neplatnému názvu hostitele. Server Redis naslouchá na 127.0.0.1:6379
. RabbitMQ poslouchá na 0.0.0.0:25672
a 0.0.0.0:4369
Nainstalujte dokumentový server OnlyOffice
Přidejte úložiště OnlyOffice pomocí následujícího příkazu.
echo "deb http://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.list
Importovat pouze veřejný klíč Office.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
Aktualizujte místní index balíčků a nainstalujte dokumentový server OnlyOffice. Všimněte si, že onlyoffice-documentserver
balíček nainstaluje nginx-extras
jako závislost, takže pokud běží webový server Apache, musíte jej nejprve zastavit.
sudo apt update sudo apt install onlyoffice-documentserver
Během procesu instalace budete požádáni o zadání hesla PostgreSQL pro onlyoffice. Zadejte „onlyoffice“ (bez uvozovek).
Chcete-li nainstalovat základní písma TrueType od společnosti Microsoft, musíte také přijmout licenční podmínky společnosti Microsoft.
Blok serveru Nginx bude nainstalován jako /etc/nginx/conf.d/ds.conf
. (Je to ve skutečnosti symbolický odkaz na /etc/onlyoffice/documentserver/nginx/ds.conf
.) Dokumentový server OnlyOffice je webová aplikace nodejs a Nginx funguje jako reverzní proxy. /var/www/onlyoffice/documentserver/
je kořenový adresář webu.
Po dokončení instalace zadejte do webového prohlížeče veřejnou IP adresu vašeho serveru, měli byste vidět „Dokumentový server běží“
Chcete-li zkontrolovat číslo verze dokumentového serveru, můžete použít následující příkaz.
apt search onlyoffice-documentserver
Ukázkový výstup.
onlyoffice-documentserver/squeeze,now 5.4.1-39 amd64 [installed] online viewers and editors for text, spreadsheet and presentation files.
Krok 2:Povolení HTTPS pro dokumentový server
Chcete-li připojit NextCloud k dokumentovému serveru OnlyOffice, tento musí být spuštěn v režimu HTTPS (server Nextcloud i uživatelské prohlížeče budou muset navázat kontakt s dokumentovým serverem). Následující kroky ukazují, jak získat a nainstalovat certifikát Let’s Encrypt TLS.
Nejprve musíme upravit soubor bloku serveru OnlyOffice Nginx.
sudo nano /etc/nginx/conf.d/ds.conf
Přidáme direktivu server_name, jak je uvedeno níže. Nezapomeňte nastavit DNS A záznam pro onlyoffice.your-domain.com
.
include /etc/nginx/includes/http-common.conf; server { listen 0.0.0.0:80; listen [::]:80 default_server; server_tokens off; server_name onlyoffice.your-domain.com; include /etc/nginx/includes/ds-*.conf; }
Uložte a zavřete soubor. Znovu načtěte Nginx, aby se změny projevily.
sudo systemctl reload nginx
Poté nainstalujte klienta certbot (Let’s Encrypt) a plugin Nginx.
sudo apt install certbot python3-certbot-nginx
Dále spusťte následující příkaz a získejte bezplatný certifikát TLS pomocí pluginu Nginx.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d onlyoffice.your-domain.com
Kde:
--nginx
:Použijte plugin nginx.--agree-tos
:Souhlas se smluvními podmínkami.--redirect
:Vynutit HTTPS přesměrováním 301.--hsts
:Ke každé odpovědi HTTP přidejte záhlaví Strict-Transport-Security. Vynucení prohlížeče, aby pro doménu vždy používal TLS. Chrání před odstraněním SSL/TLS.--staple-ocsp
: Povoluje sešívání OCSP. Platná odpověď OCSP je přišita k certifikátu, který server nabízí během TLS.
Během několika sekund se zobrazí zpráva jako níže, což znamená, že certifikát TLS byl úspěšně získán.
Navštivte https://onlyoffice.your-domain.com
ve webovém prohlížeči, abyste ověřili, že dokumentový server OnlyOffice běží správně v režimu HTTPS.
Krok 3:Nainstalujte integrační aplikaci Nextcloud OnlyOffice
Přihlaste se do webového rozhraní Nextcloud jako správce, poté přejděte na stránku Nextcloud Apps a klikněte na Office & Text
v levém panelu. Najdete aplikaci OnlyOffice. Stáhněte a povolte jej.
Poté přejděte na stránku Nastavení Nextcloud a vyberte ONLYOFFICE
v levém podokně a zadejte název domény pro OnlyOffice do pole Adresa služby pro úpravu dokumentů.
Po uložení výše uvedeného nastavení byste měli být schopni vytvářet dokumenty, tabulky a prezentační soubory v Nextcloud kliknutím na tlačítko plus (+). Otevře se samostatná karta pro úpravy.
V kontextové nabídce kancelářských dokumentů také uvidíte novou položku s názvem „Otevřít v OnlyOffice“.
Instalace serveru OnlyOffice Document Server a Nextcloud na stejném hostiteli
Dokumentový server OnlyOffice používá jako webový server Nginx.
Pokud máte existující server Nextcloud spuštěný s Nginx, nedojde při instalaci OnlyOffice na stejný počítač k žádnému poškození vašeho serveru Nextcloud. Odstraní nginx-core
a nainstalujte nginx-extras
balíček, takže dojde k malému výpadku, ale vaše konfigurace zůstanou nedotčené.
Pokud máte existující server Nextcloud spuštěný s webovým serverem Apache a chcete nainstalovat OnlyOffice na stejný počítač, máte dvě možnosti:
- Zastavte/odeberte Apache, použijte Nginx jako webový server pro Nextcloud i OnlyOffice. V tomto tutoriálu můžete použít konfiguraci Nextcloud Nginx.
- Nakonfigurujte Nginx jako reverzní proxy pro Apache.
Konfigurace Nginx jako reverzního proxy pro Apache
Pokud zvolíte druhou cestu, měli byste nejprve změnit číslo portu Apache před instalací dokumentového serveru OnlyOffice.
Upravte ports.conf
soubor.
sudo nano /etc/apache2/ports.conf
Najděte řádek:
Listen 80
Změňte jej na jiné číslo portu, například 8180. Všimněte si, že byste zde neměli používat 8080, protože dokumentový server OnlyOffice potřebuje port 8080 ke spuštění své docservice.
Listen 8180
Měli byste také změnit číslo portu SSL, protože později Nginx provede ukončení SSL. Najděte řádek:
Listen 443
Změňte číslo portu na něco jako 4433.
Listen 4433
Uložte a zavřete soubor. Dále upravte soubor virtuálního hostitele pro Nextcloud.
sudo nano /etc/apache2/sites-enabled/nextcloud.conf
První řádek by měl vypadat takto:
<VirtualHost *:80>
Změňte číslo portu na 8180.
<VirtualHost *:8180>
Měli bychom také zakázat přesměrování HTTP na HTTPS přidáním znaků komentáře před následující řádky. (Váš server Nextcloud používá připojení HTTPS, že?)
#RewriteEngine on #RewriteCond %{SERVER_NAME} =nextcloud.your-domain.com #RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
A změňte port pro naslouchání SSL.
<VirtualHost *:443>
Změňte výše uvedený port na 4433. Uložte a zavřete soubor. Znovu načtěte konfiguraci Apache.
sudo systemctl reload apache2
Nyní Apache naslouchá na portech 8180 a 4433. Poté můžeme podle výše uvedených pokynů nainstalovat dokumentový server OnlyOffice, který v procesu nainstaluje Nginx.
Jakmile jsou dokumentový server OnlyOffice a Nginx nainstalovány, vytvořte blokový soubor serveru Nginx pro proxy požadavky na Apache.
sudo nano /etc/nginx/conf.d/nextcloud-proxy.conf
Přidejte do souboru následující řádky. Nahraďte název domény svým vlastním. Cesta k ssl_certificate
a ssl_certificate_key
je pro vydané certifikáty Let’s Encrypt. Pokud používáte certifikát vydaný jinou CA, měli byste zadat svou vlastní cestu.
server { listen 80; server_name nextcloud.your-domain.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name nextcloud.your-domain.com; ssl_certificate /etc/letsencrypt/live/nextcloud.your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/nextcloud.your-domain.com/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.1 TLSv1.2; add_header Strict-Transport-Security max-age=15768000; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:8180; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
location / {...}
sekce přesměruje všechny požadavky na webový server Apache naslouchající na portu 8180. Uložte a zavřete soubor. Poté otestujte konfiguraci Nginx.
sudo nginx -t
Pokud je syntaxe v pořádku, znovu načtěte Nginx.
sudo systemctl reload nginx
Nyní byste měli být schopni navštívit váš server Nextcloud jako obvykle, bez přidání čísla portu do adresy URL. Pokud k načtení hlavičky HTTP použijete následující příkaz cURL, měli byste vidět, že front-end server je Nginx.
curl -I https://nextcloud.your-domain.com
Ukázkový výstup:
HTTP/1.1 302 Found Server: nginx/1.11.9 Date: Tue, 14 Mar 2017 08:55:30 GMT Content-Type: text/html; charset=UTF-8
Snížení režie DNS a HTTPS
Pokud jsou Nextcloud a OnlyOffice nainstalovány na stejném hostiteli, mohou spolu Nextcloud a OnlyOffice hovořit lokálně, aniž by museli zjišťovat veřejný název DNS a vytvářet připojení HTTPS.
Nejprve musíte vytvořit blok serveru Nginx, který naslouchá na místním hostiteli pro Nextcloud a OnlyOffice. Pro OnlyOffice můžete upravit /etc/nginx/conf.d/ds.conf
soubor
sudo nano /etc/nginx/conf.d/ds.conf
A přidejte následující blok serveru. Všimněte si, že tento blok serveru naslouchá na 127.0.0.1:80
a používá onlyoffice-document-server
jako název_serveru.
#HTTP host for internal services server { listen 127.0.0.1:80; listen [::1]:80; server_name onlyoffice-document-server; server_tokens off; include /etc/nginx/includes/ds-*.conf; }
Uložte a zavřete soubor. Poté můžete upravit konfigurační soubor Nextcloud Nginx.
sudo nano /etc/nginx/conf.d/nextcloud.conf
A přidejte následující blok serveru. Poslouchá také na 127.0.0.1:80
a používá nextcloud
jako název_serveru.
server { listen 127.0.0.1:80; server_name nextcloud; # Add headers to serve security related headers add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; add_header Referrer-Policy no-referrer; #I found this header is needed on Ubuntu, but not on Arch Linux. add_header X-Frame-Options "SAMEORIGIN"; # Path to the root of your installation root /usr/share/nginx/nextcloud/; access_log /var/log/nginx/nextcloud.access; error_log /var/log/nginx/nextcloud.error; location = /robots.txt { allow all; log_not_found off; access_log off; } # The following 2 rules are only needed for the user_webfinger app. # Uncomment it if you're planning to use this app. #rewrite ^/.well-known/host-meta /public.php?service=host-meta last; #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json # last; location = /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; } location = /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; } location ~ /.well-known/acme-challenge { allow all; } # set max upload size client_max_body_size 512M; fastcgi_buffers 64 4K; # Disable gzip to avoid the removal of the ETag header gzip off; # Uncomment if your server is build with the ngx_pagespeed module # This module is currently not supported. #pagespeed off; error_page 403 /core/templates/403.php; error_page 404 /core/templates/404.php; location / { rewrite ^ /index.php$uri; } location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ { deny all; } location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { deny all; } location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) { include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; #Avoid sending the security headers twice fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_intercept_errors on; fastcgi_request_buffering off; } location ~ ^/(?:updater|ocs-provider)(?:$|/) { try_files $uri/ =404; index index.php; } # Adding the cache control header for js and css files # Make sure it is BELOW the PHP block location ~* \.(?:css|js)$ { try_files $uri /index.php$uri$is_args$args; add_header Cache-Control "public, max-age=7200"; # Add headers to serve security related headers (It is intended to # have those duplicated to the ones above) add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; add_header Referrer-Policy no-referrer; # Optional: Don't log access to assets access_log off; } location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ { try_files $uri /index.php$uri$is_args$args; # Optional: Don't log access to other assets access_log off; } }
Uložte a zavřete soubor. Otestujte konfiguraci Nginx a poté znovu načtěte Nginx, aby se změny projevily.
sudo nginx -t sudo systemctl reload nginx
Dále musíme přidat lokální DNS záznam do /etc/hosts
soubor jako níže, takže server může najít adresu pro onlyoffice-document-server
a nextcloud
.
127.0.0.1 localhost onlyoffice-document-server nextcloud
Uložte a zavřete soubor.
Potřebujeme také upravit Nextcloud config.php
soubor.
sudo nano /usr/share/nginx/nextcloud/config/config.php
Přidejte nextcloud
v seznamu důvěryhodných domén, jak je uvedeno níže.
'trusted_domains' => array ( 0 => 'nextcloud.linuxbabe.com', 1 => 'nextcloud', ),
Uložte a zavřete soubor.
Nyní se vraťte na stránky nastavení webového rozhraní Nextcloud, klikněte na advanced server settings
, zadejte interní adresu pro dokumentový server OnlyOffice a Nextcloud.
- http://onlyoffice-document-server/
- http://nextcloud/
Klikněte na tlačítko Uložit a máte hotovo.
Jak upgradovat dokumentový server OnlyOffice
Když vyjde nová verze dokumentového serveru OnlyOffice, jednoduše pomocí správce balíčků apt upgradujete na novou verzi.
sudo apt update;sudo apt upgrade
Pamatujte, že nová verze přepíše vaše přizpůsobení v /etc/nginx/conf.d/ds.conf
soubor. Doporučuji zálohovat tento soubor pomocí následujícího příkazu, abyste mohli snadno obnovit své vlastní konfigurace.
cat /etc/nginx/conf.d/ds.conf | sudo tee /etc/nginx/conf.d/ds.conf.backup