Keď som minulý rok nasadzoval Nextcloud Hub do kontajnera, tak som uvažoval či použijem kancelársky balík OnlyOffice, alebo Collabora Online. Skôr som sa prikláňal k OnlyOffice, ale podľa aktuálneho stavu som sa rozhodol pre Collabora Online. V tomto článku som napísal aké jednoduché je nainštalovať jeden z týchto office balíkov. Jednalo sa o vstavané aplikácie. Dnes si nainštalujeme Collabora Online na externý server a z Nextcloud Hub sa na server pripojíme.
Obsah
- Čo je to Collabora Online
- Vytváramé LXC
- Príprava prostredia
- Inštalujeme Collabora Online
- Nastavujeme reverzný proxy server
- Nastavujeme-Nextcloud-Hub
- Záver
- Použitá literatúra
Čo je to Collabora Online
Collabora Online je open source online kancelársky balík , ktorý je možné integrovať do akejkoľvek webovej aplikácie, je vyvinutý spoločnosťou Collabora Productivity, divíziou Collabora . Collabora Online má vo svojom jadre LibreOffice , ktorý umožňuje spoluprácu v reálnom čase upravovať textové dokumenty, tabuľky, prezentácie a vektorovú grafiku. Toto všetko je možné vykonávať online v každom modernom webovom prehliadači. Tento produkt je možné porovnať napr. s platenou službou Office 365, alebo Google Docs.
Vytváramé LXC
Collaboru Online môžeme nainštalovať ako nativný balík (balíky sú momentálne vydané pre linux, založené na Debian, Ubuntu a CentOS, RHEL, SUSE). Ďalšia možnosť inštalácie je použitie Dockera. Ja som sa rozhodol nainštalovať Collaboru ako nativný balík do LXC. Čiže najprv si vytvoríme LXC kde budeme hostovať server Collabora Online. Prejdeme v Proxmox do shell a zadáme nasledujci príkaz.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 | pct create 110 \ local :vztmpl /debian-11-standard_11 .0-1_amd64. tar .gz \ -- ssh -public-keys ~ /ssh .key \ --ostype debian \ -- hostname debian-11-collabora \ --unprivileged 0 \ --net0 name=eth0,bridge=vmbr1,gw=192.168.1.1,hwaddr=9C:8B:C4:9C:C1:C9,ip=192.168.1.110 /24 , type =veth \ --cores 2 \ --arch amd64 \ --memory 2048 --swap 1024 \ --rootfs local -zfs:8 \ --features nesting=1 \ --onboot 1 \ --start 1 \ |
Upozorňujem, že toto sú moje hodnoty. Nepoužívajte ich, ale si to nastavte podľa seba. Týmto skriptom sme vytvorili plnohodnotný kontajner postavený na Debian 11. Nainštalovaný kontajner obsahuje aj ssh-public-keys a po nainštalovaní sa automaticky spustí, takže sa môžeme okamžite prihlásiť ako root.
Príprava prostredia
Pripravíme si základne prostredie a nainštalujeme niekoľko potrebných aplikácii (v mojom prípade budem používať privátnu IPv4 adresu 192.168.1.110).
1 | ssh root@192.168.1.110 |
1 2 3 4 5 6 | apt update && apt upgrade -y dpkg-reconfigure tzdata apt install sudo -y adduser <username> usermod -aG sudo <username> apt install mc -y curl -y |
Odhlásime sa a z lokálneho PC zadáme ďalší príkaz. Tu len uvediem, že na lokálnom PC z ktorého sa budeme do kontajnera prihlasovať musíme mať vygenerovaný pár kľúčov pre SSH. Ak nemáme, tak si vygenerujeme
1 2 | ssh -keygen -t rsa ssh -copy- id 192.168.1.110 |
a následne sa prihlásime ako obyčajný užívateľ
1 | ssh <username>@192.168.1.110 |
Zabezpečíme komunikáciu SSH (zakážeme prihlásiť sa ako root a zmeníme port pre SSH)
1 2 3 4 | sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config .orig sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/' /etc/ssh/sshd_config sudo sed -i 's/#Port 22/Port 2299/' /etc/ssh/sshd_config sudo systemctl restart sshd |
Znova sa odhlásime a prihlásime sa už s novým portom
1 | ssh <username>@192.168.1.110 -p 2299 |
Inštalujeme Collabora Online
Teraz pridáme potrebné balíky, kľúče na overenie balíka coolwsd, ktorý budeme sťahovať. Tak isto do sourcelistu pridáme úložisko, následne aktualizujeme a inštalujeme
1 2 3 4 5 | sudo apt install apt-transport-https ca-certificates -y sudo apt-get install gnupg2 -y sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D sudo sh -c "echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-debian11 ./' >> /etc/apt/sources.list.d/collabora.list" sudo apt update && sudo apt install coolwsd code-brand |
V dobe inštalácie sa nainštalovala coolwsd ver. 21.06.17. Čo sa týka inštalácie, tak to je vlastne všetko.
Konfigurujeme Collabora Online
Coolwsd (Collabora online WebSocket Daemon) v predvolenom nastavení povoľuje pripojenie TLS. Avšak súbor certifikátu TLS neexistuje, preto zlyhá štart aplikácie. Je lepšie vypnúť TLS v coolwsd a ukončiť TLS na reverznom proxy. Hlavný konfiguračný súbor pre Collabora sa nachádza v /etc/coolwsd/coolwsd.xml. Upraviť ho môžeme ručne napr. cez editor vi, alebo nano. Ja som použil radšej nástroj coolconfig. Tento nástroj v xml nespraví chybu a dokonca heslo neukladá v txt podobe, ale vytvorí hash hesla.
1 2 3 4 5 6 | sudo coolconfig set ssl. enable false sudo coolconfig set ssl.termination true sudo coolconfig set -admin-password sudo coolconfig set storage.wopi.host nextcloud.example.com sudo systemctl restart coolwsd sudo systemctl status coolwsd |
Ak je všetko v poriadku, tak coolwsd by mal bežať.

Coolwsd je po inštalácii zaregistrovaná aj v systemd službe, takže keď je nejaký problém, môžeme nahliadnuť do log súboru. Ideálne je log niekde uložiť a pomaly si ho prejsť.
1 | sudo journalctl -u coolwsd > coolwsd |
Coolwsd beží štandardne na porte 9980, čiže keď do webového prehliadača teraz zadáme (v mojom prípade 192.168.1.110:9980, tak by sme mali vidieť takmer prázdnu stránku. Hovorím preto takmer prázdnu, lebo v ľavom hornom rohu bude maličký text „OK„.
Ak sa na danej adrese nebude chcieť stránka vôbec načítať, tak si spomeňme, či náhodou na servery nemáme aktívny firewall. Ak áno, tak povolíme ešte port 9980 (buď pomocou ufw, alebo iptables.
1 2 | sudo ufw allow 9980 sudo iptables -A INPUT -p tcp --dport 9980 -j ACCEPT |
Coolwsd má aj prehľadnú admin console. Ak sa chceme do admin concole prihlásiť, tak vo web prehliadači napíšeme do url (v mojom prípade)
http://192.168.1.110:9980/browser/dist/admin/admin.html
Ak po úspešnom prihlásení uvidíme túto hlášku (viď obrázok)

Tak zmeníme ešte parameter ssl.termination na false
1 2 | sudo coolconfig set ssl.termination false sudo systemctl restart coolwsd |
Teraz sa môžeme normálne pohybovať v admin console, samozrejme nešifrovane cez http. Túto položku neskôr vrátime naspäť, pretože nám nebude fungovať editovanie a vytváranie súborov v Nextcloud Hub.
Nastavujeme reverzný proxy server
Teraz nás čaká nastavenie reverzného proxy servera. Ako je známe, tak ja používam reverzný proxy Nginx. Predpokladám, že doménu pre Collabora už máme vytvorenú a tak isto aj platné TLS certifikáty. Budeme uvažovať doménu collabora.example.com. Prihlásime sa cez SSH na reverzný proxy server a upravíme konfiguráciu server block pre collabora
1 2 | ssh <username>@192.168.1.105 sudo nano /etc/nginx/sites-available/collabora .example.com |
Konfigurácia môže vyzerať následovne
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | server { listen 443 ssl; server_name collabora.example.com; ssl_certificate /etc/letsencrypt/live/collabora .example.com /fullchain .pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/collabora .example.com /privkey .pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx .conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams .pem; # managed by Certbot location / { proxy_pass http: //192 .168.1.110:9980; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # static files location ^~ /browser { proxy_pass http: //192 .168.1.110:9980; proxy_set_header Host $http_host; } # WOPI discovery URL location ^~ /hosting/discovery { proxy_pass http: //192 .168.1.110:9980; proxy_set_header Host $http_host; } # Capabilities location ^~ /hosting/capabilities { proxy_pass http: //192 .168.1.110:9980; proxy_set_header Host $http_host; } # main websocket location ~ ^ /cool/ (.*) /ws $ { proxy_pass http: //192 .168.1.110: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 ~ ^/(c|l)ool { proxy_pass http: //192 .168.1.110:9980; proxy_set_header Host $http_host; } # Admin Console websocket location ^~ /cool/adminws { proxy_pass http: //192 .168.1.110:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade" ; proxy_set_header Host $http_host; proxy_read_timeout 36000s; } } server { if ($host = collabora.example.com) { return 301 https: // $host$request_uri; } # managed by Certbot listen 80; server_name collabora.example.com; return 404; # managed by Certbot } |
Reštartujeme Nginx a na reverznom proxy už nemusíme nič nastavovať.
1 | sudo systemctl restart nginx |
Nastavujeme Nextcloud Hub
Teraz sa presunieme do webového prehliadača a zadáme url pre nextcloud. V našom prípade https://nextcloud.example.com. Po úspešnom prihlásení klikneme v pravej hornej časti na ikonku nášho mena a ďalej + Apps. Klikneme na ikonku lupy a dáme vyhľadať kľúčové slovo office. To čo som zvýraznil červenou farbou, je to čo potrebujeme (Nextcloud Office). teraz klikneme na Download and Enable. Aplikácia sa nainštaluje a povolí sa na používanie.

Presunieme sa do Settings a klik na Office viď obrázok. Vo vrchnej časti označíme Use your own server a zadáme URL s https. Ak je vsetko OK, tak uvidíme zelenú fajku. To znamená, že Collabora server je dosiahnuteľný. Môžeme to uložiť Save. Ešte môžeme označiť checkbox Use Office Open XML (OOXML) Instead of OpenDocument Format (ODF) by Default for New files. Tymto sme nastavili, že súbory sa budú ukladať vo formáte MS office (DOCX, XSLX atď.)

To je vlastne všetko, ale ešte musíme spraviť malú zmenu. Vyskúšajme si existujúci súbor otvoriť, alebo vytvoriť nový. Systém sa bude chvíľu tváriť, že chce súbor načítať, ale po niekoľkých sekundách uvidíme toto.

Ako som už spomínal, teraz musíme zmeniť parameter ssl.termination false na ssl.termination true
1 2 | sudo coolconfig set ssl.termination true sudo systemctl restart coolwsd |
Až teraz je všetko OK a môžeme spokojne upravovať, alebo vytvárať nove office dokumenty. Ukladané budú vo formáte MS Office. Testoval som ukladanie do PDF, tlač a pod. Menú v dokumentoch bude nastavené na taký jazyk ako máme nastavený v Nextcloud. Momentálne som ešte neprepol na slovenčinu, preto je všade vidieť angličtinu.
Ak chceme vidieť pripojených klientov v admin konzole, tak môžeme to pokojne urobiť

Záver
Collabora Online som skúsil nainštalovať aj na LXC kde už beží Nextcloud Hub. Potom som sa rozhodol, že Collaboru nainštalujem izolovane od Nextcloud Hub. Collabora Online by mala mať údajne také iste funkcie a mala by zvládnuť to čo klasicky Libre Office. Výhodou Collabora Office oproti klasickej desktopovej verzii Libre Office je tá, že užívateľ môže pracovať s office dokumentami, online uloženými na servery. Zároveň na jednom dokumente môže pracovať súčasne viac užívateľov, ktorý sa navzájom vidia. Ako som už uviedol v článku, tak Collabora je kompatibilná aj s dokumentami MS office.