Description
Error Message and Logs
Hi Coolify team
I’m trying to run the Coolify dashboard through a coolify-proxy container that is deployed on the same host as Coolify itself as an additional "server" — and I’m wondering if this is even a supported setup, because WebSocket connections (specifically for the terminal) consistently fail in this configuration.
⸻
Setup
• One server entry in Coolify points to localhost (the default one that the setup created)
• A second “server” entry points to the same machine via its internal Docker IP 10.0.0.1
• This creates a coolify-proxy container on the host
• DNS (coolify.example.com) is pointed to that proxy (via Cloudflare, proxied/“orange cloud” enabled)
• The dashboard is served correctly via the proxy
⸻
Problem
Everything in the dashboard works (after the rewrite metioned below) — except the terminal.
In the browser:
Terminal Attempting connection to: wss://coolify.example.com/terminal/ws
WebSocket connection established. Cool cool cool cool cool cool.
Coolify could not connect to its real-time service. This will cause unusual problems on the UI if not fixed!
WebSocket connection closed. Code: 1006, Reason: No reason provided
Meanwhile in the network tab:
- 101 Switching Protocols is returned
- Messages like this are exchanged:
{"event":"pusher:connection_established","data":"{\"socket_id\":\"...\"}"}
and:
{"command":["timeout 7200 ssh -o ControlMaster=auto ..."]}
So the connection opens, but the UI still throws an error and closes the socket.
⸻
What I've tried
- Initially, without rewrites, wscat to /terminal/ws gave:
error: Unexpected server response: 404
(in this state, the ws request in the browsers network tab could not be established at all as well)
- added a dynamic middleware to coolify-proxy:
replacePathRegex:
regex: ^/terminal/ws$
replacement: /app/<PUSHER_KEY>
- After this, wscat worked perfectly:
wscat -c wss://coolify.example.com/terminal/ws
Connected
< {"event":"pusher:connection_established", ...}
The browser, however, still fails, even though the message exchange looks valid. (see above)
⸻
Questions
1. Is this setup supported?
→ Serving the Coolify dashboard via a coolify-proxy container on the same host, deployed via a second “server” entry using the internal IP (10.0.0.1)
2. Is the /terminal/ws path expected to “just work” through a proxy, or does the UI require direct access to the realtime backend?
3. Can the Coolify UI be configured to use the full Pusher path (i.e. /app/<PUSHER_KEY>) directly, or are these rewrites i've tried potentially causing other problems?
4. Could Cloudflare (proxied DNS) still cause issues here, despite 101 Switching Protocols and payloads being visible?
5. Is there another way i can run the coolify dashboard (aka the coolify
container port 8000) on a host/server that is available as a deployment target as well?
⸻
Thanks a lot for your time — and for this awesome project 🙌
Happy to provide logs, network traces, or a minimal setup if needed.
– Michael
Steps to Reproduce
see above
Example Repository URL
No response
Coolify Version
v4.0.0-beta.419
Are you using Coolify Cloud?
No (self-hosted)
Operating System and Version (self-hosted)
Ubuntu 22.04
Additional Information
No response