Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Debian 9 Nextcloud + Collabora online

Ahoj,

už pár dní si hraju se "serverem" který jsem si udělal ze staršího PC. Na moje pokusy a hraní asi ideální. Na stroj jsem nainstaloval Debian 9 a rozchodil na něm Nextcloud, který je přístupný z internetu. Pak mi to ale nedalo a pokusil jsem se integrovat collabora online do Nextcloudu a tady narážím na svoje mrzké znalosti. Prakticky by se asi dalo říct, že mám vše nainstalováno, nicméně při pokusu o editaci jakéhokoliv souboru mě to vyřve hláškou "Unauthorized WOPI host". Faktem je, že mi to chvíli fungovalo, ale pak jsem restartoval "server" a vše se bohužel s chybou opakuje.

Zkusím popsat konfiguraci a vůbec jak to mám uděláno, zřejmě ale na něco zapomenu, tak případné informace doplním.
Debian 9, Nextcloud 12 aktuální verze. Vše běží na apache2 a MariaDB, tohle je asi v pohodě.

Pak jsem pokračoval přiinstalováním Nextcloudu pomocí Docker -

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=office\\.mojedomena\\.cz' --restart always --cap-add MKNOD collabora/code

Vytvořil jsem virtualhost nextcloud.conf a office.mojedomena.cz.conf ve tvaru:
pro nextcloud.conf

<VirtualHost *:80>
 DocumentRoot "/var/www/nextcloud"
 ServerName mojedomena.cz

 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/nextcloud/>
 Options +FollowSymlinks
 AllowOverride All

 <IfModule mod_dav.c>
 Dav off
 </IfModule>

 SetEnv HOME /var/www/nextcloud
 SetEnv HTTP_HOME /var/www/nextcloud
 Satisfy Any
</Directory>

a office.mojedomena.cz.conf


<VirtualHost *:80>
ServerName office.mojedomena.cz
RewriteEngine on
RewriteCond %{SERVER_NAME} =office.mojedomena.cz
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>

Pak jsem přes Letsencrypt ocertifikoval oboje, jak doménu, tak subdoménu. Na obě se tedy dá přistoupit přes https se funkčním certifikátem, ověřeno přes sslab a další. S tím se pojí vygenerování dvou dalších configů pro port 443
tedy nextcloud-le-ssl.conf ve tvaru:

<IfModule mod_ssl.c>
<VirtualHost *:443>
 DocumentRoot "/var/www/nextcloud"
 ServerName mojedomena.cz

 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/nextcloud/>
 Options +FollowSymlinks
 AllowOverride All

 <IfModule mod_dav.c>
 Dav off
 </IfModule>

 SetEnv HOME /var/www/nextcloud
 SetEnv HTTP_HOME /var/www/nextcloud
 Satisfy Any

</Directory>
SSLCertificateFile /etc/letsencrypt/live/mojedomena.cz/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mojedomena.cz/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

a office.mycloud.cz-le-ssl.conf ve tvaru:

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName office.crocodilus.cz
SSLCertificateFile /etc/letsencrypt/live/office.mojedomena.cz/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/office.mojedomena.cz/privkey.p$
Include /etc/letsencrypt/options-ssl-apache.conf
# Encoded slashes need to be allowed
AllowEncodedSlashes NoDecode

# Container uses a unique non-signed certificate
SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off

# keep the host
ProxyPreserveHost On

# static html, js, images, etc. served from loolwsd
# loleaflet is the client part of LibreOffice Online
ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0
ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet

# WOPI discovery URL
ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retr$
ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discove$

# Main websocket
ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon

# Admin Console websocket
ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws

# Download as, Fullscreen presentation and Image upload operations
ProxyPass /lool https://127.0.0.1:9980/lool
ProxyPassReverse /lool https://127.0.0.1:9980/lool
</VirtualHost>
</IfModule>

pak jsem všechny sítě pozapínal pomocí a2ensite a ověřil si jejich funkčnost pokusem o přístup přes "https://" a testem certifikátu viz výše.

V administraci nextcloudu jsem u nastavení collabora nastavil cestu pro collabora online server a to https://office.mojedomena.cz:443. Při pokusu o editaci souboru přes Collaboru ted dostávám chybu Unauthorized WOPI host s tím, že pod obrázkem je načtená Collabora, tzn, domnívám se, že Collabora funguje, ale je problém někde v autorizaci, autentifikaci, nebo kýho šlaka. Bohužel v logu nextcloudu není uvedena žádná chyba, která by mě nějak nasměrovala a mě už došly nápady před pár dny a zkouším různé věci pořád dokola, což nepřináší kýžený efekt....

Proto kdyby měl někdo nějaký tip či radu jakým směrem se ubírat, budu moc vděčný.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Jsem to ale hlupák! docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=office\\.mojedomena\\.cz' --… poslední
Redsnake 26.08.2017 15:45
Redsnake

Jsem to ale hlupák!

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=office\\.mojedomena\\.cz' --restart always --cap-add MKNOD collabora/code

se nemá spouštět s odkazem na collabora server ale na instanci nextcloudu!

V mém případě ve tvaru:

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=mojedomena\\.cz' --restart always --cap-add MKNOD collabora/code

Nyní již vše funguje!

EDIT: Po restartu serveru musím smazat docker příkazem docker rm -f ID instance a znovu přidat. Opruz.

Zpět do poradny Odpovědět na původní otázku Nahoru