Skip to content

Proxy Configuration

The following configuration should be set when Huddo Collab is deployed under an existing domain (e.g. HCL Connections). All Collab paths are routed by context path to individual services on the Collab host.

The Collab services expose the following ports on the Docker host:

Path Port Notes
/huddo/attachments 2882 Strip /huddo prefix
/huddo/discussions 3473 Strip /huddo prefix
/huddo/editor 27012 WebSocket upgrade required
/huddo/ideas 4332
/huddo/wikis 9454
/huddo 2655 Core UI and API
/auth 2655 Rewrite to /huddo/auth
/socketcluster 7625 WebSocket upgrade required

nginx

Please add the following location blocks to your proxy server -> listen 443 blocks:

# OAuth callbacks — rewrite /auth → /huddo/auth (Next.js basePath)
location /auth {
    rewrite ^/auth(.*) /huddo/auth$1 break;
    proxy_pass http://[DOCKER_COMPOSE_HOSTNAME]:2655;
    proxy_pass_request_headers on;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
}

# Collab editor (WebSocket)
location /huddo/editor {
    proxy_pass http://[DOCKER_COMPOSE_HOSTNAME]:27012;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forwarded-Proto $scheme;
}

# Ideas
location /huddo/ideas {
    proxy_pass http://[DOCKER_COMPOSE_HOSTNAME]:4332;
    proxy_pass_request_headers on;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
}

# Wikis
location /huddo/wikis {
    proxy_pass http://[DOCKER_COMPOSE_HOSTNAME]:9454;
    proxy_pass_request_headers on;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
}

# Attachments (strip /huddo prefix)
location /huddo/attachments {
    rewrite ^/huddo(/.*) $1 break;
    proxy_pass http://[DOCKER_COMPOSE_HOSTNAME]:2882;
    proxy_pass_request_headers on;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
}

# Discussions (strip /huddo prefix)
location /huddo/discussions {
    rewrite ^/huddo(/.*) $1 break;
    proxy_pass http://[DOCKER_COMPOSE_HOSTNAME]:3473;
    proxy_pass_request_headers on;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
}

# Core UI and API
location /huddo {
    proxy_pass http://[DOCKER_COMPOSE_HOSTNAME]:2655;
    proxy_pass_request_headers on;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
}

# SocketCluster real-time (WebSocket)
location /socketcluster {
    proxy_pass http://[DOCKER_COMPOSE_HOSTNAME]:7625;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forwarded-Proto $scheme;
}

Where:

  • [DOCKER_COMPOSE_HOSTNAME] is the hostname or IP of the server running the Docker Compose

httpd

Please add the following Proxy rules to the VirtualHost 443 block:

<VirtualHost *:443>
    ServerName [HOST_DOMAIN]

    # Huddo Collab — OAuth callbacks
    ProxyPass "/auth" "http://[DOCKER_COMPOSE_HOSTNAME]:2655/huddo/auth"
    ProxyPassReverse "/auth" "http://[DOCKER_COMPOSE_HOSTNAME]:2655/huddo/auth"

    # Huddo Collab — Core UI and API
    ProxyPass "/huddo" "http://[DOCKER_COMPOSE_HOSTNAME]:2655/huddo"
    ProxyPassReverse "/huddo" "http://[DOCKER_COMPOSE_HOSTNAME]:2655/huddo"

    # Huddo Collab — Ideas
    ProxyPass "/huddo/ideas" "http://[DOCKER_COMPOSE_HOSTNAME]:4332/huddo/ideas"
    ProxyPassReverse "/huddo/ideas" "http://[DOCKER_COMPOSE_HOSTNAME]:4332/huddo/ideas"

    # Huddo Collab — Wikis
    ProxyPass "/huddo/wikis" "http://[DOCKER_COMPOSE_HOSTNAME]:9454/huddo/wikis"
    ProxyPassReverse "/huddo/wikis" "http://[DOCKER_COMPOSE_HOSTNAME]:9454/huddo/wikis"

    # Huddo Collab — Attachments
    ProxyPass "/huddo/attachments" "http://[DOCKER_COMPOSE_HOSTNAME]:2882/attachments"
    ProxyPassReverse "/huddo/attachments" "http://[DOCKER_COMPOSE_HOSTNAME]:2882/attachments"

    # Huddo Collab — Discussions
    ProxyPass "/huddo/discussions" "http://[DOCKER_COMPOSE_HOSTNAME]:3473/discussions"
    ProxyPassReverse "/huddo/discussions" "http://[DOCKER_COMPOSE_HOSTNAME]:3473/discussions"

    # Huddo Collab — SocketCluster (WebSocket — requires mod_proxy_wstunnel)
    ProxyPass "/socketcluster" "ws://[DOCKER_COMPOSE_HOSTNAME]:7625/socketcluster"
    ProxyPassReverse "/socketcluster" "ws://[DOCKER_COMPOSE_HOSTNAME]:7625/socketcluster"
</VirtualHost>

Where:

  • [HOST_DOMAIN] is the URL of your environment, e.g. your HCL Connections deployment
  • [DOCKER_COMPOSE_HOSTNAME] is the hostname or IP of the server running the Docker Compose

Note

WebSocket proxying for /socketcluster and /huddo/editor requires mod_proxy_wstunnel to be enabled in Apache httpd.