Hi,
In my setup i have an forward proxy in front of all outgoing connection to filter the services.
Is there an possible configuration to point Collabora online to this proxy? All my services are in containers (Nextcloud, Collabora, Tinyproxy, Caddy).
Stuff i tried:
- add an proxy section in the
coolwsd.xml
(see below) - curl in Nextcloud to Collabora:
https://office.example.com/browser/dist/admin/admin.html
- curl in Collabora to Nextcloud:
http://cloud.example.com/status.php
- curl from client to the two services
=> all curl commands work
The reason the curls work, is because I added the enviroment vars: HTTP_PROXY, HTTPS_PROXY, http_proxy, https_proxy
to point all to the proxy.
But still i get the error message:
wsd-00001-00023 2025-04-15 21:59:34.760234 +0000 \( websrv_poll \) DBG #-1: starting asyncRequest: GET cloud.example.com:443 /index.php/apps/richdocuments/wopi/files/7_octwoqzlt3pi?access_token=qHXzQymXM0fTT9DQkLgjgrQGroNHg788&access_token_ttl=0&permission=edit| net/HttpRequest.hpp:1340
wsd-00001-00023 2025-04-15 21:59:34.760306 +0000 \( websrv_poll \) ERR #-1: Failed to connect to cloud.example.com:443| net/HttpRequest.hpp:1756
wsd-00001-00023 2025-04-15 21:59:34.760311 +0000 \( websrv_poll \) ERR #-1: Failed to start an async CheckFileInfo request| wsd/wopi/CheckFileInfo.cpp:157
I also found this wiki entry Proxy but it only applies when the connection was already successful.
It would be much appreciated if anyone has an solution for my edge problem. Thank you in advance!
My coolwsd.xml:
<config>
<ssl desc="SSL settings">
<!-- switches from https:// + wss:// to http:// + ws:// -->
<enable type="bool" desc="Controls whether SSL encryption between coolwsd and the network is enabled (do not disable for production deployment). If default is false, must first be c>
<!-- SSL off-load can be done in a proxy, if so disable SSL, and enable termination below in production -->
<termination desc="Connection via proxy where coolwsd acts as working via https, but actually uses http." type="bool" default="false">true</termination>
</ssl>
<storage desc="Backend storage">
<filesystem allow="false"/>
<wopi allow="true" desc="Allow/deny wopi storage.">
<max_file_size desc="Maximum document size in bytes to load. 0 for unlimited." type="uint">0</max_file_size>
<locking desc="Locking settings">
<refresh default="900" desc="How frequently we should re-acquire a lock with the storage server, in seconds (default 15 mins) or 0 for no refresh" type="int"/>
</locking>
<alias_groups desc="default mode is 'first' it allows only the first host when groups are not defined. set mode to 'groups' and define group to allow multiple host and its alias>
<!-- If you need to use multiple wopi hosts, please change the mode to "groups" and
add the hosts below. If one host is accessible under multiple ip addresses
or names, add them as aliases. -->
<!--<group>
<host desc="hostname to allow or deny." allow="true">scheme://hostname:port</host>
<alias desc="regex pattern of aliasname">scheme://aliasname1:port</alias>
<alias desc="regex pattern of aliasname">scheme://aliasname2:port</alias>
@UNLOCK_LINK_PER_HOST@
</group>-->
<!-- More "group"s possible here -->
</alias_groups>
<host desc="Regex pattern of hostname to allow or deny." allow="true">https://cloud\.example\.com</host>
</wopi>
<ssl desc="SSL settings">
<as_scheme default="false" desc="When set we exclusively use the WOPI URI's scheme to enable SSL for storage" type="bool">false</as_scheme>
<enable desc="If as_scheme is false or not set, this can be set to force SSL encryption between storage and coolwsd. When empty this defaults to following the ssl.en">false</enab>
<termination type="bool">true</termination>
</ssl>
</storage>
<logging>
<level type="string" desc="Can be 0-8 \(with the lowest numbers being the least verbose\), or none \(turns off logging\), fatal, critical, error, warning, notice, information, debug, tr>
</logging>
<proxy>
<http>
<host>http://systemd-tinyproxy</host>
<port>8888</port>
</http>
<https>
<host>http://systemd-tinyproxy</host>
<port>8888</port>
</https>
</proxy>
</config>