Vyhledávání na webu

Jak nainstalovat ONLYOFFICE Docs na Ubuntu 24.04


ONLYOFFICE Docs je zdarma použitelný, přesto výkonný, online kancelářský balík pro spolupráci, který je vybaven prohlížeči a editory dokumentů pro texty, prezentace, tabulky, formuláře a PDF. Balík ONLYOFFICE je plně kompatibilní s formáty Office Open XML: .docx, .xlsx, .pptx a podporuje spolupráci na dokumentech v reálném čase. V tomto článku vám ukážeme, jak nainstalovat a nakonfigurovat ONLYOFFICE Docs na Ubuntu 24.04 (Noble Numbat).

Ultimátní příručka pro Ubuntu Desktop

Ovládněte Ubuntu jako profesionál – od krásného přizpůsobení plochy po výkonnou automatizaci v terminálu. Ideální pro vývojáře, správce systému a pokročilé uživatele, kteří chtějí plnou kontrolu nad svým pracovním prostředím.

Sada ONLYOFFICE Docs obsahuje následující komponenty:

  • server – Toto je vrstva backendového serveru, která řídí všechny komponenty ONLYOFFICE Docs.
  • jádro – Umožňuje komunikaci mezi formáty kancelářských dokumentů (DOC, DOCX, ODT, RTF, TXT, PDF, HTML, EPUB, XPS, DjVu, XLS, XLSX, ODS, CSV, PPT, PPTX, ODP).
  • sdkjs – JavaScript SDK API pro všechny zahrnuté komponenty pro interakci na straně klienta.
  • web-aplikace – Toto je frontend pro ONLYOFFICE Docs
  • slovníky – Obsahují slovníky různých jazyků používané pro kontrolu pravopisu v ONLYOFFICE Docs.

Zde je seznam editorů, které obsahuje ONLYOFFICE Docs:

  • Editor dokumentů ONLYOFFICE
  • Editor tabulek ONLYOFFICE
  • Editor prezentací ONLYOFFICE
  • Tvorba formulářů ONLYOFFICE
  • ONLYOFFICE PDF editor, prohlížeč a převodník

Nastavit požadavky

V tomto článku instalujeme Community Edition ONLYOFFICE Docs na lokální server s Ubuntu. Minimální hardwarové požadavky na server jsou následující:

  • CPU: Minimálně dvoujádrový 2 GHz
  • RAM: alespoň 2 GB
  • Místo na disku: Nejméně 40 GB volného místa
  • SWAP: Nejméně 4 GB, nebo více RAM, pokud není swap.
  • OS: 64bitový systém Ubuntu nebo Debian Linux

Pokud splňujete požadavky, je vhodná chvíle zaměřit se na nastavení vašeho serveru Dokumentů.

Krok 1: Nastavte databázi PostgreSQL

Začněte nastavení tím, že zajistíte, aby byl váš systém aktuální:

sudo apt update && sudo apt upgrade -y

Můžeme nainstalovat verzi serveru PostgreSQL dostupnou v výchozích repozitářích našeho operačního systému.

sudo apt install postgresql

Jakmile je balíček nainstalován, služba se spustí automaticky, dalším krokem je vytvoření databáze a uživatele PostgreSQL:

sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH PASSWORD 'onlyoffice';"
sudo -i -u postgres psql -c "CREATE DATABASE onlyoffice OWNER onlyoffice;"

Krok 2: Nainstalujte server RabbitMQ

ONLYOFFICE používá RabbitMQ jako zprostředkovatele zpráv, aby umožnil komunikaci mezi různými službami v rámci sady ONLYOFFICE. Balíček nainstalujte spuštěním následujícího příkazu:

sudo apt install rabbitmq-server

Můžete zkontrolovat stav služby:

$ systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ Messaging Server
     Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; preset: enabled)
     Active: active (running) since Tue 2024-07-30 08:20:24 UTC; 6s ago
   Main PID: 15046 (beam.smp)
      Tasks: 24 (limit: 4658)
     Memory: 102.8M (peak: 107.9M)
        CPU: 3.770s
     CGroup: /system.slice/rabbitmq-server.service
             ├─15046 /usr/lib/erlang/erts-13.2.2.5/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -pc unicode -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sb>
             ├─15056 erl_child_setup 65536
             ├─15108 /usr/lib/erlang/erts-13.2.2.5/bin/inet_gethost 4
             ├─15109 /usr/lib/erlang/erts-13.2.2.5/bin/inet_gethost 4
             └─15112 /bin/sh -s rabbit_disk_monitor

Jul 30 08:20:20 ubuntu-cloudspinx-com systemd[1]: Starting rabbitmq-server.service - RabbitMQ Messaging Server...
Jul 30 08:20:24 ubuntu-cloudspinx-com systemd[1]: Started rabbitmq-server.service - RabbitMQ Messaging Server.

Krok 3: Nainstalujte ONLYOFFICE Docs

Nyní, když jsme nakonfigurovali prostředí, jsme připraveni nainstalovat ONLYOFFICE Docs do našeho systému Ubuntu. Prvním krokem však musíme importovat GPG klíč používaný k podepisování balíčků.

curl -fsSL  https://download.onlyoffice.com/GPG-KEY-ONLYOFFICE|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/onlyoffice.gpg

Jakmile je GPG importováno, můžeme přidat APT repozitář ONLYOFFICE:

echo "deb https://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.list

Aktualizujte mezipaměť správce balíčků a nainstalujte ONLYOFFICE Docs.

sudo apt update
sudo apt install onlyoffice-documentserver ttf-mscorefonts-installer

Když budete vyzváni k zadání hesla k databázi, jednoduše stiskněte klávesu <ENTER> na klávesnici pro pokračování. Dále přijměte podmínky licenční smlouvy.

Zkontrolujte, zda při instalaci nebyly zaznamenány žádné chyby. Pokud vše proběhne v pořádku, bude možné k ONLYOFFICE přistupovat ve vašem prohlížeči na adrese http://localhost nebo http://serverdomain_or_ip.

Krok 4: Zabezpečte ONLYOFFICE Docs pomocí SSL

Můžeme nakonfigurovat ONLYOFFICE Docs pro přístup pomocí protokolu HTTPS, který je mnohem bezpečnější než HTTP. Ve výchozím nastavení je nakonfigurováno pro běh na HTTP.

V naší konfiguraci běží server v cloudovém prostředí. To umožňuje používat bezplatný SSL od Let's Encrypt.

Používání SSL od Let’s Encrypt

Nejjednodušší způsob, jak nakonfigurovat HTTPS pro ONLYOFFICE Docs, je použít SSL certifikáty Let’s Encrypt pomocí certbotu. Pro instalaci certbotu použijte následující příkaz.

  • Debian/Ubuntu:
sudo apt update && sudo apt install certbot
sudo apt install python3-certbot-nginx
  • Systémy založené na RHEL:
sudo dnf -y install epel-release
sudo dnf -y install certbot python3-certbot-nginx

Jakmile nainstalujete certbot, spusťte skript ONLYOFFICE, který automatizuje nastavení SSL.

sudo bash /usr/bin/documentserver-letsencrypt.sh [email  yourdomain.com

Nahraďte [email svou skutečnou e-mailovou adresou a yourdomain.com názvem domény nakonfigurované v DNS pro server ONLYOFFICE Docs.

Když spustíte příkazy, zobrazí se cesta k souboru protokolu, kde můžete sledovat postup generování SSL a veškeré chyby budou zaznamenány tam.

Saving debug log to /var/log/letsencrypt/letsencrypt.log

Pro zobrazení obsahu logovacího souboru použijte příkaz cat:

sudo cat /var/log/letsencrypt/letsencrypt.log

Ukázka posledních několika řádků výstupu ze souboru:

...

-----BEGIN CERTIFICATE-----
MIIEVzCCAj+gAwIBAgIRAIOPbGPOsTmMYgZigxXJ/d4wDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjQwMzEzMDAwMDAw
WhcNMjcwMzEyMjM1OTU5WjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCRTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNCzqK
a2GOtu/cX1jnxkJFVKtj9mZhSAouWXW0gQI3ULc/FnncmOyhKJdyIBwsz9V8UiBO
VHhbhBRrwJCuhezAUUE8Wod/Bk3U/mDR+mwt4X2VEIiiCFQPmRpM5uoKrNijgfgw
gfUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD
ATASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSfK1/PPCFPnQS37SssxMZw
i9LXDTAfBgNVHSMEGDAWgBR5tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcB
AQQmMCQwIgYIKwYBBQUHMAKGFmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0g
BAwwCjAIBgZngQwBAgEwJwYDVR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVu
Y3Iub3JnLzANBgkqhkiG9w0BAQsFAAOCAgEAH3KdNEVCQdqk0LKyuNImTKdRJY1C
2uw2SJajuhqkyGPY8C+zzsufZ+mgnhnq1A2KVQOSykOEnUbx1cy637rBAihx97r+
bcwbZM6sTDIaEriR/PLk6LKs9Be0uoVxgOKDcpG9svD33J+G9Lcfv1K9luDmSTgG
6XNFIN5vfI5gs/lMPyojEMdIzK9blcl2/1vKxO8WGCcjvsQ1nJ/Pwt8LQZBfOFyV
XP8ubAp/au3dc4EKWG9MO5zcx1qT9+NXRGdVWxGvmBFRAajciMfXME1ZuGmk3/GO
koAM7ZkjZmleyokP1LGzmfJcUd9s7eeu1/9/eg5XlXd/55GtYjAM+C4DG5i7eaNq
cm2F+yxYIPt6cbbtYVNJCGfHWqHEQ4FYStUyFnv8sjyqU8ypgZaNJ9aVcWSICLOI
E1/Qv/7oKsnZCWJ926wU6RqG1OYPGOi1zuABhLw61cuPVDT28nQS/e6z95cJXq0e
K1BcaJ6fJZsmbjRgD5p3mvEf5vdQM7MCEvU0tHbsx2I5mHHJoABHb8KVBgWp/lcX
GWiWaeOyB7RP+OfDtvi2OsapxXiV7vNVs7fMlrRjY1joKaqmmycnBvAq14AEbtyL
sVfOS66B8apkeFX2NY4XPEYV4ZSCe8VHPrdrERk2wILG3T/EGmSIkCYVUMSnjmJd
VQD9F6Na/+zmXCc=
-----END CERTIFICATE-----

2024-07-30 08:56:34,141:DEBUG:acme.client:Storing nonce: Ma8ZwRNA9J1JoJ_IMl_v_1HLCTTt5G01XNs8p_Mvri6JbKsSWrI
2024-07-30 08:56:34,142:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/archive.
2024-07-30 08:56:34,142:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/live.
2024-07-30 08:56:34,142:DEBUG:certbot._internal.storage:Writing README to /etc/letsencrypt/live/README.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/archive/docs.cloudlabske.com.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/live/docs.cloudlabske.com.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Writing certificate to /etc/letsencrypt/live/docs.cloudlabske.com/cert.pem.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Writing private key to /etc/letsencrypt/live/docs.cloudlabske.com/privkey.pem.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Writing chain to /etc/letsencrypt/live/docs.cloudlabske.com/chain.pem.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Writing full chain to /etc/letsencrypt/live/docs.cloudlabske.com/fullchain.pem.
2024-07-30 08:56:34,144:DEBUG:certbot._internal.storage:Writing README to /etc/letsencrypt/live/docs.cloudlabske.com/README.
2024-07-30 08:56:34,156:DEBUG:certbot.configuration:Var account=985390e388f48deb37eab1e67d361272 (set by user).
2024-07-30 08:56:34,157:DEBUG:certbot._internal.plugins.selection:Requested authenticator webroot and installer None
2024-07-30 08:56:34,157:DEBUG:certbot._internal.plugins.selection:Requested authenticator webroot and installer None
2024-07-30 08:56:34,157:DEBUG:certbot.configuration:Var webroot_path=['/var/www/onlyoffice/documentserver/letsencrypt'] (set by user).
2024-07-30 08:56:34,157:DEBUG:certbot.configuration:Var webroot_map={'docs.cloudlabske.com': '/var/www/onlyoffice/documentserver/letsencrypt'} (set by user).
2024-07-30 08:56:34,157:DEBUG:certbot._internal.storage:Writing new config /etc/letsencrypt/renewal/docs.cloudlabske.com.conf.
2024-07-30 08:56:34,159:DEBUG:certbot._internal.display.obj:Notifying user:
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/docs.cloudlabske.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/docs.cloudlabske.com/privkey.pem
This certificate expires on 2024-10-28.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
2024-07-30 08:56:34,161:DEBUG:certbot._internal.display.obj:Notifying user: If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le

Používání samopodepsaných SSL certifikátů

Pro systémy umístěné v soukromé síti můžete generovat certifikáty s vlastním podpisem. Alternativně, pokud spravujete DNS na Cloudflare, podívejte se na náš článek o tom, jak nakonfigurovat Let’s Encrypt s Cloudflare DNS.

Uživatelé používající vlastní certifikáty mohou upravit obsah následujícího souboru a nastavit cestu k privátnímu klíči a certifikátu domény:

sudo nano /etc/onlyoffice/documentserver/nginx/ds.conf

Podívejte se níže na obsah z naší konfigurace v tomto článku s využitím Let's Encrypt.

include /etc/nginx/includes/http-common.conf;

## Normal HTTP host
server {
  listen 0.0.0.0:80;
  listen [::]:80 default_server;
  server_name _;
  server_tokens off;
  set $secure_link_secret nsdy8N28Ylobmp5EL4wF;

  ## Redirects all traffic to the HTTPS host
  root /nowhere; ## root doesn't have to be a valid path since we are redirecting
  rewrite ^ https://$host$request_uri? permanent;
}

#HTTP host for internal services
server {
  listen 127.0.0.1:80;
  listen [::1]:80;
  server_name localhost;
  server_tokens off;
  set $secure_link_secret nsdy8N28Ylobmp5EL4wF;

  include /etc/nginx/includes/ds-common.conf;
  include /etc/nginx/includes/ds-docservice.conf;
}

## HTTPS host
server {
  listen 0.0.0.0:443 ssl;
  listen [::]:443 ssl default_server;
  server_tokens off;
  set $secure_link_secret nsdy8N28Ylobmp5EL4wF;
  root /usr/share/nginx/html;

  ## Strong SSL Security
  ## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
  ssl_certificate /etc/letsencrypt/live/docs.cloudlabske.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/docs.cloudlabske.com/privkey.pem;
  # Uncomment string below and specify the path to the file with the password if you use encrypted certificate key
  # ssl_password_file {{SSL_PASSWORD_PATH}};
  ssl_verify_client off;

  ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";

  ssl_protocols TLSv1.2;
  ssl_session_cache  builtin:1000  shared:SSL:10m;

  ssl_prefer_server_ciphers   on;

  add_header Strict-Transport-Security max-age=31536000;
  # add_header X-Frame-Options SAMEORIGIN;
  add_header X-Content-Type-Options nosniff;

  ## [Optional] If your certficate has OCSP, enable OCSP stapling to reduce the overhead and latency of running SSL.
  ## Replace with your ssl_trusted_certificate. For more info see:
  ## - https://medium.com/devops-programming/4445f4862461
  ## - https://www.ruby-forum.com/topic/4419319
  ## - https://linux-console.net/community/tutorials/how-to-configure-ocsp-stapling-on-apache-and-nginx
  # ssl_stapling on;
  # ssl_stapling_verify on;
  # ssl_trusted_certificate /etc/nginx/ssl/stapling.trusted.crt;
  # resolver 208.67.222.222 208.67.222.220 valid=300s; # Can change to your DNS resolver if desired
  # resolver_timeout 10s;

  ## [Optional] Generate a stronger DHE parameter:
  ##   cd /etc/ssl/certs
  ##   sudo openssl dhparam -out dhparam.pem 4096
  ##
  # ssl_dhparam /etc/ssl/certs/dhparam.pem;

  include /etc/nginx/includes/ds-*.conf;

}

Aktualizujte ssl_certificate a ssl_certificate_key, aby odpovídaly vašemu prostředí.

Přístup k dokumentům OnlyOffice na https://yourdomain

Zobrazí se vám uvítací stránka ONLYOFFICE Docs s dalšími pokyny, jak můžete povolit ukázky dokumentů a integrovat je do svých aplikací pomocí poskytnutého API.

Krok 5: Integrace aplikací třetích stran

Integrace ONLYOFFICE s vašimi aplikacemi třetích stran, jako jsou Pydio, Zimbra, WordPress, Odoo, SuiteCRM, Mattermost atd., probíhá hladce. Podívejte se na všechny konektory na následujícím odkazu:

  • Seznam konektorů ONLYOFFICE