On-premise installation
Installation runs from a docker-compose.yml file Testsigma builds for your configuration. It defines a MySQL server, a global HTTPD load balancer, a Faktory worker, and a UI service per application component. See On-premise prerequisites for what the host needs before you start.
Deploy the containers
Section titled “Deploy the containers”-
Install Docker and Docker Compose on the host.
-
Open a terminal in the directory holding the
docker-compose.ymlfile Testsigma gave you. -
Run
docker-compose up.
The containers start in the background and keep running after you close the terminal.
To stop and remove them, along with the networks the file created, run docker-compose down.
What the compose file defines
Section titled “What the compose file defines”Every image follows the pattern testsigmainc/onprem:<service>-<companyName>-trial-<Version>.
| Container | What it is |
|---|---|
testsigma_mysql | The MySQL server, with a volume mounted so data persists |
testsigma_worker | The Faktory worker service |
testsigma_load_balancer | The global HTTPD server, with a mounted volume and environment variables for the components it serves |
testsigma_id_server_ui | The Identity Server UI |
testsigma_app_server_ui | The WebApp Server UI, pre-configured for hosting web applications and capturing screenshots |
testsigma_mobile_inspection_ui | The Groot Server UI, which carries an environment variable for a driver action host |
testsigma_addon_server_ui | The Kibbutz UI |
testsigma_visual_testing_server | Visual testing, pre-configured for capturing and comparing screenshots during execution |
The compose file also runs the backend servers each UI talks to: testsigma_id_server, testsigma_app_server, testsigma_addon_server, and testsigma_audit_server, along with testsigma_audit_ui. Their ports are in On-premise prerequisites.
Every service joins a custom network named testsigma-network, and each has its own health check, with intervals, timeouts, and retries that vary by service.
Default load balancer environment variables
Section titled “Default load balancer environment variables”TS_APP_SERVER_PROTOCOL: httpsTS_APP_SERVER_HOST: testsigma-app-serverTS_APP_SERVER_PORT: 8080TS_APP_SERVER_UI_PROTOCOL: httpTS_APP_SERVER_UI_HOST: testsigma-app-server-uiTS_APP_SERVER_UI_PORT: 80TS_ID_SERVER_PROTOCOL: httpsTS_ID_SERVER_HOST: testsigma-id-serverTS_ID_SERVER_PORT: 8084TS_ID_SERVER_UI_PROTOCOL: httpTS_ID_SERVER_UI_HOST: testsigma-id-server-uiTS_ID_SERVER_UI_PORT: 80TS_MOBILE_INSPECTION_UI_PROTOCOL: httpTS_MOBILE_INSPECTION_UI_HOST: testsigma-mobile-inspection-uiTS_MOBILE_INSPECTION_UI_PORT: 80TS_ADDON_SERVER_PROTOCOL: httpsTS_ADDON_SERVER_HOST: testsigma-addon-serverTS_ADDON_SERVER_PORT: 8082TS_ADDON_SERVER_UI_PROTOCOL: httpTS_ADDON_SERVER_UI_HOST: testsigma-addon-server-uiTS_ADDON_SERVER_UI_PORT: 80Access the application
Section titled “Access the application”Testsigma sends a list of URLs with the compose files, in the form <company_name>-testsigmaprivate.com, <company_name>-addon.testsigmaprivate.com, and <company_name>-visualtesting.testsigmaprivate.com.
Add the mapping to the host machine’s hosts file. Then reach the application at your server’s IP address and the port the compose file exposes for the web service. Where that port is 80, the address is http://<server-ip>:80.
Configure a custom domain
Section titled “Configure a custom domain”Have the URL details and .crt certificates ready before you start. See On-premise prerequisites.
-
Request the Docker image with your domain names from Testsigma, through GitHub Actions.
-
Store the public key and private key files on the host machine.
-
Specify both as volumes on the
testsigma_load_balancercontainer in the compose file. -
Run
docker-compose up. Theserver.crtandserver.keyfiles inside the container are replaced by the ones from the host.
version: '3.9'services: testsigma_load_balancer: container_name: testsigma-load-balancer image: testsigmainc/onprem:load-balancer-<CustomDomain>-trial-v120 ports: - "443:443" networks: - testsigma-network volumes: - ./data/ts_load_balancer_data:/opt/app/ts_load_balancer_data - /path/to/new/server.crt:/usr/local/apache2/ssl/server.crt - /path/to/new/server.key:/usr/local/apache2/ssl/server.keyReplace /path/to/new/server.crt and /path/to/new/server.key with the paths on your host machine.
Verify the installation
Section titled “Verify the installation”Once the containers are up, confirm each of these:
- The recorder captures actions during testing.
- Auto Healing is enabled and recovers from errors as expected.
- The import add-on is integrated and functioning.
- Users can log in with the default password and reach the system.
- Users can reset that password and log in with the new one.
- The agent is active and communicating with the testing environment.
- A test case executes and returns results.
- The SMTP setup for email is configured.
- Screenshots appear in execution reports.
- No emails arrive from Testsigma cloud, which means the property is not set to cloud.
After an upgrade
Section titled “After an upgrade”-
Stop the old agent and confirm it is no longer active.
-
Hard refresh the application with Ctrl+Shift+R to clear cached data.
-
Download the latest agent from the application.
-
Extract the download and start the updated agent.
-
Check the agent’s status and version number.
Troubleshooting
Section titled “Troubleshooting”The application is not accessible
Section titled “The application is not accessible”The host mapping is missing. Open /etc/hosts on the server and add a <system-ip-address> <domain> pair for each service:
192.168.0.1 dev.testsigmaprivate.com192.168.0.1 dev-id.testsigmaprivate.com192.168.0.1 dev-addon.testsigmaprivate.com192.168.0.1 dev-visualtesting.testsigmaprivate.com192.168.0.1 dev-audit.testsigmaprivate.com192.168.0.1 dev-mobilerecorder.testsigmaprivate.comThe server refused to connect
Section titled “The server refused to connect”Connect to the server machine, go to the Testsigma installation folder, and run docker ps -a. Every container should read Up.
Where one reads Exited, read its logs to find the reason, then restart it with docker compose up -d. If the problem persists, contact support@testsigma.com.
Read a container’s logs
Section titled “Read a container’s logs”Run docker logs -f testsigma-app-server, substituting the container you want. Press Ctrl + C to leave the log view.
To send logs to Testsigma, copy them out of the container first, then pull them off the server and email them to support@testsigma.com:
docker cp testsigma-app-server:/opt/logs <destination_location>/A domain does not resolve
Section titled “A domain does not resolve”Find the IP address behind the domain with dig, or with nslookup:
dig app-testsigma.de.yourcompany.comThen check the connection to that address on port 443:
nc -vz 18.215.41.231 443If the connection succeeds but the application still does not load, check the HTTP response, passing the domain as the Host header so the load balancer routes the request:
curl -H "Host: http://app.testsigma.com" http://52.1.167.174:80/Was this page helpful?
Thanks for the feedback.