VISULOX 5 Documentation
5.0.2 5.0.1
5.0.2 5.0.1

Visulox Gateway Port Configuration Guide


Purpose:
How the Visulox Gateway Port is chosen during installation and how to change it on an installed system.


Scope:
Visulox Portal, Visulox Connector, Visulox Core, Nginx, firewalld.

The Gateway Port is the HTTPS port used to open Visulox in a browser.

  • The default Gateway Port is 8180.

  • Port 8080 is the REST API port, not the Gateway Port.

  • Port 443 can be used so the HTTPS URL does not need a port number.

Set the port during installation

The best time to choose the Gateway Port is during the initial setup — the setup-master step described in Installing Visulox.
Setup displays:

Enter Gateway Port (default 8180):

Press Enter to use 8180, or enter another port such as 443.

For a file-based installation, set:

JSON
"GatewayPort": 443

Setup then creates the matching Portal, Connector, Visulox Core, Nginx, firewall, and SELinux configuration.

Change The Port After Installation

The following procedure changes a single-node installation from 8180 to 443. HTTPS remains enabled. The REST API port 8080 and Connector API port 8085 do not change.

In a multi-node (cluster) installation, repeat the configuration steps on every master and worker server that runs the Portal or Connector service.

Run all steps in the same SSH session.

The procedure restarts the Portal and Connector services, which disconnects active user sessions. Perform the change in a maintenance window.

Important: Do not modify the configuration until you have checked the environment (See: Preparation and pre-change checks). After applying the changes, check again (See: Post-change checks and cleanup). Keep the old port open until all post-change checks pass.

1. Edit the Connector configuration

Open the Connector configuration:

Bash
vim /opt/visulox-portal-connector/configs/config.json

Three values must be changed.

First, search for:

/GatewayPort

Change:

Diff
- "GatewayPort": 8180
+ "GatewayPort": 443

Next, search for the TusHandler section:

/TusHandler

Search for /VISULOXPort and change:

Diff
- "VISULOXPort": 8180
+ "VISULOXPort": 443

Then search for the Entra section:

/Entra

Search for /VISULOXPort and make the same change:

Diff
- "VISULOXPort": 8180
+ "VISULOXPort": 443

Save and exit with:

:wq

The fields above are complete for the current version, but later versions may reference the Gateway Port in additional sections. Search the whole file for any remaining occurrence of the old port and change those values too:

Bash
grep -n 8180 /opt/visulox-portal-connector/configs/config.json

The command should return no output. Any line that is printed still contains the old port and must be reviewed.

2. Edit the Portal configuration

Open the Portal configuration:

Bash
vim /opt/visulox-portal/configs/config.json

Search for /GatewayPort and change:

Diff
- "GatewayPort": 8180
+ "GatewayPort": 443

Search for /WebSocketServerPort and change:

Diff
- "WebSocketServerPort": 8180
+ "WebSocketServerPort": 443

Save and exit with :wq.

Search this file for any remaining occurrence of the old port as well:

Bash
grep -n 8180 /opt/visulox-portal/configs/config.json

The command should return no output. Any line that is printed still contains the old port and must be reviewed.

Validate both files:

Bash
restorecon /opt/visulox-portal-connector/configs/config.json
restorecon /opt/visulox-portal/configs/config.json

python3 -m json.tool \
  /opt/visulox-portal-connector/configs/config.json >/dev/null

python3 -m json.tool \
  /opt/visulox-portal/configs/config.json >/dev/null

No output means both JSON files are valid.

3. Update Visulox Core

Bash
visulox config -name "api.gateway_port=443"
visulox config -name api.gateway_port

The displayed value should be 443.

4. Regenerate Nginx

Do not edit the generated Nginx files manually. Regenerate them from the Connector configuration:

Bash
/opt/visulox-portal-connector/bin/vlx-connectord \
  refresh-node-gateway-nginx \
  -c /opt/visulox-portal-connector/configs/config.json

Confirm the generated values:

Bash
grep -n 'listen 443 ssl' \
  /etc/nginx/conf.d/visulox-gateway-node.conf

grep -n 'default "443"' \
  /etc/nginx/includes/visulox-gateway-node-variables.conf

5. Apply the change

Validate Nginx before reloading it:

Bash
nginx -t

If the test succeeds:

Bash
systemctl reload nginx
systemctl restart vlx-portal vlx-connector
sleep 10

systemctl is-active vlx-portal vlx-connector nginx firewalld
systemctl --failed --no-legend
ss -ltnp | grep ':443[[:space:]]'

Then continue with checking the system.

Preparation and pre-change checks

Complete these checks before editing any configuration.

Connect and check the server

Bash
sudo -i

Check the services, Nginx configuration, and current listener:

Bash
systemctl is-active vlx-portal vlx-connector nginx firewalld
nginx -t
ss -ltnp | grep -E ':(443|8180)[[:space:]]' || true

Test the current Portal:

Bash
curl -ksS -o /dev/null -w 'Current UI: %{http_code}\n' \
  https://127.0.0.1:8180/ui4/login

The expected result is HTTP 200. Also confirm that no other process is using port 443.

Open port 443 if it is not already open

Keep port 8180 open until the change has been tested.

Bash
firewall-cmd --permanent --zone=public \
  --add-rich-rule='rule family="ipv4" port port="443" protocol="tcp" accept'

firewall-cmd --reload

firewall-cmd --zone=public \
  --query-rich-rule='rule family="ipv4" port port="443" protocol="tcp" accept'

The query should return yes. Port 443 is already allowed for HTTPS by the standard SELinux policy.

Post-change checks and cleanup

Complete these checks after applying the configuration changes. Remove the old firewall rule only after all checks pass.

Test the new port

Test the UI and the Connector-to-Core route:

Bash
curl -ksS -o /dev/null -w 'Local UI: %{http_code}\n' \
  https://127.0.0.1:443/ui4/login

curl -ksS -o /dev/null -w 'Core route: %{http_code}\n' \
  https://127.0.0.1:443/visulox/api/v1/portal/user/owner

Both tests should return HTTP 200.

Run the health check:

Bash
/opt/visulox-portal/bin/vlx-portald health-check

Confirm that the Portal Servers and Connector Servers sections are healthy.

Open the Portal from another computer:

https://<visulox-hostname>/ui4/login

Test login, application launch, XPRA connectivity, file upload, Portal Connect, and Entra login when those features are enabled. The hostname and TLS certificate do not change.

Remove the old firewall rule

Only after all tests pass, remove the old firewall rule:

Bash
firewall-cmd --permanent --zone=public \
  --remove-rich-rule='rule family="ipv4" port port="8180" protocol="tcp" accept'

firewall-cmd --reload
firewall-cmd --zone=public --list-rich-rules

The final state is Nginx listening on 443, with a rich rule allowing port 443.