I have installed the Pydio Community Edition to test the features, and I think Pydio seems very nice for a locally hosted documentation server.
I want Pydio (ofcourse) to be able to edit office documents, and I want to use Collabora Online for that. But it fails hard.
The official Pydio installation instructions didn’t work so well and I had to resolve installation issues by Googling through and finding posts on nextcloud forums.
I’m running a Ubuntu Server 16.04 and have installed Pydio on apache2. I’m using a self-signed certificate for SSL.
I can see that Pydio opens Collabora Online, but it cannot access the document. It casts the error “Well, this is embarrassing, we cannot connect to your document. Please try again.”
When I look at the docker logs it keeps getting SSL errors.
Does anyone in here recently have installed Pydio with Collabora Online, and could perhaps share how they did?
Hi,
sorry to hear that, yes the docker installation is quite tricky.
could you link the guides that are not working well i’ll try to update them.
As for your issue i think you should take a look at this otherwise you could install the native version if the docker is giving you issues there’s a post that was kinda addressing this issue here.
I completely agree that it should be something related to reverse proxy.
Anyway a good check is also to have a look if collabora is correctly listening on port 9980
Thanks for the response. I’ll give the description of what will make it work, once it does. There’s no real reason to tell what the errors are, as long as it doesn’t work. I just know that what I read to do, made the progress. I’ll give the full description later.
This is after I try to open a Document using Collabora Online from inside Pydio. I see the editor and it pops up with the message “Well this is embarassing”…
The option must be set and also you must set https in the url to libreoffice editor frame.
you must also be sure that lool is listening on the port that is specified for the websock.
Anyway I always prefer native installation to docker one.
Especially under ubuntu installing collabora natively is extremely simple.
I realize there is an issue with my internetproxy and the keyserver. I managed to grab the key by using my cellphone internet connection.
I managed to install it natively using your script romoloman. Now I might be getting closer. I use the same proxy config, as I did with docker:
<VirtualHost *:443>
ServerName xxxx.xxxx.xx:443
# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
SSLEngine on
SSLCertificateFile /root/testkey.crt
#SSLCertificateChainFile /path/to/intermediate_certificate
SSLCertificateKeyFile /root/testkey.key
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite 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
SSLHonorCipherOrder on
# 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 retry=0
ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery
# 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>
I get a new error this time. From the webinterface it says:
Failed to read document from storage.
And from the backend it says:
ERR WOPI::CheckFileInfo failed with 404 Not Found
I tried adding lool user to the apache2 user www-data’s group, for permissions to the files.
Any ideas? I run loolwsd with this command (taken from the docker image run command):
If you install libreoffice using my script you should already have a service loolwsd running
no need to pass any other parameter.
Only verify that you have correctly generated the ssl certificates for loolwsd
Lool doesn’t read the files directly form the filesystem but they are passed to lool using the web service.
Anyway the command user to start loolwsd is correct
In the service is specified as:
ExecStart=/usr/bin/loolwsd --version --o:sys_template_path=/opt/lool/systemplate --o:lo_template_path=/opt/collaboraoffice5.3 --o:child_root_path=/opt/lool/child-roots --o:file_server_root_path=/usr/share/loolwsd
Did you enabled the following modules in apache ?
rewrite
proxy
proxy_html
proxy_wstunnel
in apache2 ?
Is AllowOverride all enabled in the pydio directory
is the .htaccess in the pydio appropriate for your installation ?
I have all the modules mentioned enabled. The .htaccess file looks like this:
# Make sure to enable RewriteRule on your server, and the the RewriteBase is correctly set.
# If your install is accessible on https://yourdomain.tld/pydio, RewriteBase should be /pydio.
# If your install is accessible on https://yourdomain.tld/, RewriteBase should be /.
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php [L]
#Following lines seem to be necessary if PHP is working
#with apache as CGI or FCGI. Just remove the #
#See http://doc.tiki.org/WebDAV#Note_about_Apache_with_PHP_as_fcgi_or_cgi
#RewriteCond %{HTTP:Authorization} ^(.*)
#RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
#Following lines may be necessary for a PHP-FPM setup
# to make sure that authorization is transmitted.
# Just remove the # at the beginning of the line
#SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
</IfModule>
AddType application/json .json
The location of pydio is this:
/var/www/pydio/
The apache2.conf looks like this:
Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
# Include list of ports to listen on
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride all
Require all granted
</Directory>
<Directory /usr/share>
AllowOverride all
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
<VirtualHost *:443>
ServerName xxxx.xxxx.xx:443
# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
SSLEngine on
SSLCertificateFile /root/testkey.crt
#SSLCertificateChainFile /path/to/intermediate_certificate
SSLCertificateKeyFile /root/testkey.key
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite 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
SSLHonorCipherOrder on
# 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 retry=0
ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery
# 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>
I still get the same errors as mentioned above. Does anything look odd?
Hi,
unfortunately there isn’t you could try to adapt the main parameters from the apache config to the nginx and then try with small steps until you figure it out.