This page is in English — onze technische documentatie voor ontwikkelaars en beheerders is in het Engels.
Run Relay on Windows
Run Viaalink Relay on a Windows PC from the release .zip, keep it running while you are logged in, and open the firewall ports.
Overview
Viaalink Relay runs on Windows as a standalone program (viaalink-relay.exe) for 64-bit Intel/AMD (x64) and Arm64 PCs. It runs in the foreground, in a console window in your user session: it keeps working while you are logged in and stops when you close the window, log out, or shut down. While the PC sleeps, the Relay cannot be reached.
For a Relay that should stay reachable around the clock, use a machine that is always on — see Run Relay on Linux, Run Relay with Docker, or Run Relay on Synology or QNAP.
Download
The Windows .zip files (x64 and Arm64) are published with the first release — ask contact@viaalink.com for early access.
Install
Extract the
.zipfor your PC (x64 or Arm64). It unpacks into a single folder that containsviaalink-relay.exe.Move that folder to a permanent location, for example
C:\viaalink-relay. The Relay keeps its data next to where you start it, so pick a folder you will not clean up by accident.Open PowerShell in that folder and check that the program starts:
powershellcd C:\viaalink-relay .\viaalink-relay.exe --versionCreate the data folders the Relay writes to (it does not create them itself):
powershellNew-Item -ItemType Directory -Force -Path deploy\keys, deploy\pubkeys, deploy\ssl, license
Configuration and data paths
Unless you pass other paths, the Relay reads and writes everything relative to the folder you start it from:
| Path (relative to the start folder) | Purpose |
|---|---|
config.yml | Configuration file (--config); settings saved in /_relay/dashboard are written here |
deploy\keys\ | Server SSH host keys (--private-keys-directory) |
deploy\pubkeys\ | Approved client SSH public keys (--authentication-keys-directory) |
deploy\ssl\ | TLS certificates (--https-certificate-directory) |
license\license.jwt | License file, when you pass --license-key-file .\license\license.jwt |
Back up this folder to keep your host keys, approved keys, and license. Always start the Relay from the same folder (or pass absolute paths), or it will not find its data.
Create a config.yml in the folder:
domain: relay.example.com
ssh-address: :2222
http-address: :8080
https-address: :8443
authentication: true
bind-random-subdomains: true
license-key-file: .\license\license.jwtSetting license-key-file enables the browser setup dashboard at /_relay/dashboard, also on the Free plan.
Run the Relay
From PowerShell in the Relay folder:
.\viaalink-relay.exe --config .\config.ymlThe Relay logs to the console window. On first start it generates a setup code, logs the setup link that contains it, and writes the code to license\setup-token.txt. Open the setup dashboard on the same PC:
http://localhost:8080/_relay/dashboard?x-authorization=<setup-code>Restart after changing settings
Some settings saved in /_relay/dashboard (ports, domain, HTTPS, IP and country rules) only take effect after a restart. On Windows the Relay does not restart itself: the setting is written to config.yml and the log says a manual restart is needed. Press Ctrl+C in the console window and start the Relay again.
Keep it running while you are logged in
To start the Relay automatically when you log in, use Task Scheduler:
- Open Task Scheduler and choose Create Task.
- On General, name the task
Viaalink Relayand leave Run only when user is logged on selected. - On Triggers, add a trigger: Begin the task: At log on, for your user.
- On Actions, add Start a program:
- Program/script:
C:\viaalink-relay\viaalink-relay.exe - Add arguments:
--config C:\viaalink-relay\config.yml - Start in:
C:\viaalink-relay
- Program/script:
- On Settings, clear Stop the task if it runs longer than (it is set to 3 days by default), then click OK.
The Relay then starts in a console window each time you log in. Closing that window stops it; logging out stops it as well. Task Scheduler does not restart it after a manual stop — run the task again from Task Scheduler or start the program yourself.
Firewall ports
Windows Defender Firewall may ask whether to allow viaalink-relay.exe on its first start; allow it on the networks where clients connect. To open the ports explicitly, run PowerShell as Administrator:
New-NetFirewallRule -DisplayName "Viaalink Relay SSH" -Direction Inbound -Protocol TCP -LocalPort 2222 -Action Allow
New-NetFirewallRule -DisplayName "Viaalink Relay HTTP/HTTPS" -Direction Inbound -Protocol TCP -LocalPort 8080,8443 -Action AllowIf you enable calls through firewalls, also open 3478/udp and 49152–49167/udp:
New-NetFirewallRule -DisplayName "Viaalink Relay calls" -Direction Inbound -Protocol UDP -LocalPort 3478 -Action Allow
New-NetFirewallRule -DisplayName "Viaalink Relay media" -Direction Inbound -Protocol UDP -LocalPort 49152-49167 -Action AllowOn your router, forward 2222/tcp to the PC and translate external port 80 to 8080 and 443 to 8443. See Requirements and Network Architecture for the full port table.
Next steps
- Authorize client keys in Access Control and Security.
- Activate a paid plan in Relay Licensing.
- Review every flag in Relay Configuration Reference.