AltTester® Server
What it is
The AltTester® Server is the process that sits between your instrumented app and whatever drives it. Nothing connects to anything directly: the instrumented app connects to the server, your tests (and AltTester® Desktop, and the AltTester® CLI) connect to the server, and the server routes commands and responses between them.
It is a standalone executable with its own version. AltTester® Desktop downloads it, starts it and stops it for you - see Get the AltTester® Server - but it does not need AltTester® Desktop to run: you can start it yourself, on this machine or on another one, and point both your app and your tests at it.
What it does
Accepts app connections. An instrumented app connects and registers itself with its name, platform, app id and SDK version - the tags you see on the app’s card in AltTester® Desktop.
Accepts driver connections. Tests, the AltTester® CLI, the AltTester® AI Extension and AltTester® Desktop all connect as drivers, and the server pairs each one with the app it asks for.
Routes the commands between the two, including the live update stream used to mirror the app’s screen.
Enforces your subscription. How many apps and drivers may be connected at once comes from your license, and the server refuses connections past those limits.
Validates the license - continuously, not only at startup - and secures the connections when it is run in secure mode (WSS).
Checks the SDK. An app instrumented with an SDK that is too old to complete the connection handshake is turned away with a message asking for an update.
Note
Only one AltTester® Server may run on a machine at a time. A second one exits immediately with “Another instance of AltTester Server is already running on this machine.” - which is also what you see if AltTester® Desktop already started one in the background.
Running it from AltTester® Desktop
This is the usual way, and it is covered in Get started: the
Start Server tab holds the port, the license key, the secure-mode toggle and the certificate, and
the button starts and stops the server. AltTester® Desktop keeps an eye on the process, reports its
status, and stops it when you close the application.
Running it yourself
The executable AltTester® Desktop installs can be run directly:
Windows:
%USERPROFILE%\.alttester\Server\AltTesterServer.exemacOS/Linux:
~/.alttester/Server/AltTesterServer
Started in a terminal with no arguments, it walks you through an interactive setup - license key, port, secure mode and, in secure mode, the certificate - then prints the configuration it is starting with, your license’s limits, and the addresses it is listening on.
Important
A standalone server needs a paid license key. The Lite (community) license only works while the server is launched by AltTester® Desktop, and a Lite server only accepts connections from the same machine (127.0.0.1). With a paid license the server listens on all interfaces, so apps and tests on other machines can reach it.
Options
Everything the interactive setup asks can be passed as an argument or an environment variable instead, which is what you want in CI or in a container. Arguments take precedence over environment variables.
| Option | Environment variable | What it does |
|---|---|---|
--port <number> |
ALTSERVER_PORT |
Port to listen on. Default 13000. |
--secure [<bool>] |
ALTSERVER_SECURE |
Run in secure mode (WSS). Default off. |
--cert-path <path> |
ALTSERVER_CERT_PATH |
TLS certificate (.pfx) used in secure mode. |
--cert-password <pass> |
ALTSERVER_CERT_PASSWORD |
Password for that certificate, if it has one. |
--license-key <key> |
ALTSERVER_LICENSE_KEY |
The license to activate on start. |
--terms-and-conditions-accepted [<bool>] |
ALTSERVER_TERMS_AND_CONDITIONS_ACCEPTED |
Accept the Terms and Conditions without being asked. |
--log-file <path> |
ALTSERVER_LOG_FILE |
Also write the server output to this file. |
--no-interactive |
Skip the setup prompts. Always on when there is no terminal. | |
--version |
Print the server version and exit. | |
--help, -h |
Show the available options. |
Note
The interactive setup only appears when the server is started from a terminal. In a script, a CI job or a container it is skipped automatically, so anything you do not pass falls back to its default.
In Docker
The server ships as a .NET application, so the image only needs the .NET runtime - see the
Dockerfile in the server’s repository. Pass the configuration through the environment variables
above, and publish the port you gave it.
Licensing and limits
On start, the server prints what your license allows:
License: Pro
Game Engine: UNITY
Max App Connections: 2
Max Driver Connections: 2
Max MCP Drivers: 1
Max CLI Drivers: 1
An app or driver that would exceed one of those limits is refused with a message saying so, rather than silently replacing what is already connected.
The server also re-checks the subscription while it runs. If the check fails - an expired license, or simply no way to reach the licensing service - the server stops accepting connections and says so, then starts serving again by itself once the check succeeds:
ERROR: ... Stopping the AltTester(R) Server until the subscription can be verified again.
Subscription verified again, restarting the AltTester(R) Server.
Note
Secure mode requires a license that includes secure connections. Asking for it with a license that does not, stops the server at startup with a message naming that as the reason.
When it will not start
| Message | What it means |
|---|---|
Another instance of AltTester® Server is already running on this machine. |
Only one server may run per machine - stop the other one, or use the one already running. AltTester® Desktop may have started it. |
No license was found. |
Pass a license key with --license-key, or activate one in AltTester® Desktop when it is the one starting the server. |
The community license only works when the server is launched from AltTester® Desktop. |
A standalone server needs a paid license key. |
Secure mode (WSS) was requested but the current license does not support secure connections. |
Start it without --secure, or use a license that includes secure connections. |
Cannot start AltTester®. Another process is listening on port <port>. |
Something else already holds that port - pick another one with --port. |
For what the certificate has to look like in secure mode, see Advanced Usage.