Everything went totally fine, http://localhost:9980 says “ok” and I can reach
http:// localhost:9980/loleaflet/dist/admin/admin.html
After setting the Collabora Online Server to localhost on port 9980 getting an ok, I tried to open a docx document in owncloud. But instead of showing the document it keeps loading…
The error seems to be:
Collabora Online: No connection can be established to the host “http ://localhost:9980”.
Please ask your administrator to check the Collabora Online server settings. The exact error message was:cURL error 7: Failed to connect to localhost port 9980: Connection refused
I could see the following in the collabora docker logs (docker logs collabora --tail=100 -f):
ERR Cannot get file info from WOPI storage uri [http://localhost:8080/apps/richdocuments/wopi/files/12_ocrktkqjfzs5?access_token=1FsqICpCRdhAr3YuD6o87ZR6AYyEVf5O&access_token_ttl=0&permission=edit]. Error: Connection refused| wsd/Storage.cpp:474
Otherwise you might be able to set the configuration using the following xmlstarlet command by execing into the container (docker exec -it collabora bash).
Afterwards you need to restart the docker container again to apply the configuration changes:
docker restart collabora
Hope that helps. Otherwise you might be able to see additional error messages (ERR) in the docker log while trying to access collabora through ownCloud, please send those through.
@eneubauer The settings have to be set in the Owncloud admin panel.
Okay, I’ll try this out. Thanks.
The reason I couldn’t connect to collabora on https was, I didn’t access Owncloud on https but just collabora. Do you know how to ssl encrypt owncloud?
btw other-40.umwelt-campus.de is my localhost machine.
My vHost is just connecting to 9980 (Collabora):
<VirtualHost *:80>
ServerAdmin mail@example.de
ServerName other-40.umwelt-campus.de
# 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://localhost: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>
The problem is that ‘localhost’ inside the container will resolve to the internal container. But there the ownCloud installation won’t be available.
root@230a6c7ea892:/# docker exec -ti collabora bash
telnet localhost 9980
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> Connection closed.
root@230a6c7ea892:/# telnet localhost 8080
Trying 127.0.0.1...
Trying ::1...
telnet: Unable to connect to remote host: Cannot assign requested address
My ownCloud installation is available on the port 8080
eneubauer@host:~/bin/core$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
230a6c7ea892 collabora/code "/bin/sh -c 'bash st…" 2 hours ago Up 2 hours 0.0.0.0:9980->9980/tcp collabora
af004d98f332 owncloud/server:10.1 "/usr/bin/entrypoint…" 3 hours ago Up 3 hours (healthy) 0.0.0.0:8080->8080/tcp owncloud-docker-server_owncloud_1
And the last part of the documentation definitely mentions to access collabora admin page:
Access Collabora Admin at http://[your-host-public-ip]:9980/loleaflet/dist/admin/admin.html e.g. 172.16.12.95 , and set in Settings -> Admin -> Additional -> Collabora Online server -> http://[your-host-public-ip]:9980
Yep, I already did that . And I can access Collabora via SSL on port :9980 .
The problem is that I can’t run Owncloud on port 8080 via https. Just on http. I followed the official owncloud documentation and run it on port 8080 with the docker-compose.yml
Your default-ssl.conf configures port 443 not 8080, which is neither published nor exposed.
If you’re also running docker for your ownCloud, I would recommend to set up a reverse proxy that terminates SSL on the public IP address and forwards all traffic to the unencrypted endpoints.
I’m running a vanilla docker-compose.yml for owncloud-docker-server and collabora docker container you linked. The only adjustment I had to make to get it running was the one from my first post in this thread.
If that’s possible for you, it might be worth it to blow away your current environment and start over.
Afterwards you can start implementing the SSL termination via a reverse proxy.
If you’re also running docker for your ownCloud, I would recommend to set up a reverse proxy that terminates SSL on the public IP address and forwards all traffic to the unencrypted endpoints.
I sadly got no idea how. Totally new to this stuff…
Is there no current way to get the ssl encrytion running on port 8080? Or 8082 - I mean you can change it if you want.
I remember vaguely that you can’t access collabora via localhost, you have to use the DNS name. So you have to go in the collabora container and create a hosts entry for your VM outside of the container.