Skip to content

Commit

Permalink
Updated On-Prem Prereq doc (#340)
Browse files Browse the repository at this point in the history
Updated On-premise setup prerequisites document as per the ticket https://testsigma.atlassian.net/browse/DOC-270.

Co-authored-by: Pratheep Velicherla <[email protected]>
  • Loading branch information
bharathk08 and PratheepV authored Dec 12, 2023
1 parent 79440a7 commit 479cf54
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 19 deletions.
10 changes: 7 additions & 3 deletions src/pages/docs/on-premise setup/install-docker-on-uzure-infra.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,18 @@ contextual_links:
- type: section
name: "Contents"
- type: link
name: "Steps to install Docker on an Unix OS in Azure infrastructure"
name: "Steps to Install Docker on an Unix OS in Azure Infrastructure"
url: "#steps-to-install-docker-on-an-unix-os-in-azure-infrastructure"
---

<br>

---

This article discusses a step-by-step guide to installing Docker on a Unix-based OS within Azure infrastructure.

## **Steps to install Docker on an Unix OS in Azure infrastructure**
---

## **Steps to Install Docker on an Unix OS in Azure Infrastructure**

1. Connect to your Azure virtual machine.

Expand Down Expand Up @@ -77,3 +80,4 @@ Refer to this page https://github.com/datahub-project/datahub/issues/2020 for av



---
34 changes: 28 additions & 6 deletions src/pages/docs/on-premise setup/prerequisites.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,49 @@
---
title: "On-premise setup prerequisites"
title: "On-Premise Setup Prerequisites"
order: 26.1
page_id: "On-premise setup prerequisites"
metadesc: "This detailed guide will help you understand the prerequisites for Testsigma On-premise setup | Know these details before installing Testsigma On-premise setup"
noindex: false
search_keyword: ""
warning: false
contextual_links:
- type: section
name: "Contents"
- type: link
name: "Software, Hardware, and other Requirements"
url: "#software-hardware-and-other-requirements"
---

---

<br>

This article outlines the essential steps and requirements for a successful on-premise setup. Understanding these prerequisites before installing the software is important to ensure a smooth installation process. So, follow the recommendations and requirements given in this document to avoid any issues during the installation process.


---



## **Software, Hardware, and other Requirements**


|**Requirements**|**Details**|
|---|---|
|**Server Configuration**|<li> OS: Ubuntu(22.04 LTS) or higher<br> <li> CPU: 24 core<br> <li> RAM: 64 GB<br> <li> DISK: 1 TB - 2 TB (Depending on usage)|
|**Software Requirements**|<li> Internet connectivity on server<br> <li>Docker installation capability on server<br> <li>Root privileges on server<br> <li>Permissions to install/Start the following libraries/executables on customer employee machines:<br> - Java/JVM<br> - Appium <br> - ADB from android<br> - Ability to run xcrun on mac os machines<br> - Ability to run xattr on mac os machines|
|**Network Requirements**|Allow incoming connections from outside to server <br> *.sengrid.com <br> *.messagebird.com <br> *.twilio.com|
|**Server Configuration**|<li> **OS**: Ubuntu (22.04 LTS) or higher<br> <li> **CPU**: 24 core<br> <li> **RAM**: 64 GB<br> <li> **DISK**: 1 TB - 2 TB (Depending on usage)|
|**Software Requirements**|<li> Internet connectivity on server<br> <li>Docker installation capability on server<br> <li>Root privileges on server<br> <li>Permissions to install/Start the following libraries/executables on customer employee machines:<br> - Java/JVM<br> - Appium <br> - ADB from android<br> - Ability to run xcrun on mac os machines<br> - Ability to run xattr on mac os machines|
|**Machine Configuration**|<li> It is recommended to install Ubuntu at the root with a 256GB machine.<br> <li> Additionally, it is advised to mount a 2TB and above (based on the usage) hard disk for storage.<br> <li> All required software will be installed at the root, and storage configurations will be set to utilize the mounted disk.|
|**Network Requirements**| <li> If the firewall enabled, *.docker.com, *.amazon.com, *.amazonaws.com, *.maven.org, these should be whitelisted.<br> <li> If they wanted to use the Testsigma mail service, *.sendgrid.com needs to be whitelisted. |
|**Database Requirements**|<li>MySQL database would be installed by default.<br> <li> The user must use only MySQL version 5.7<br> <li> If the customer is going to use a MySQL installation, then we need to install the following commands to setup DB: <br> <br>*CREATE DATABASE IF NOT EXISTS tstmp;* <br>*CREATE DATABASE IF NOT EXISTS identity;* <br> *CREATE DATABASE IF NOT EXISTS master;* <br> *CREATE DATABASE IF NOT EXISTS tenant1;* <br> *CREATE DATABASE IF NOT EXISTS kibbutz;* <br> <br>*SET session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';* <br> <br> *SET global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';*<br> <br> <li>For cloud databases like AWS RDS if the setting of sql_mode is not allowed the provider-specific option can be used like AWS RDS parameter groups. <br> <li> For external databases we would be encouraged to have disk space of 512GB - 1TB depending on customer usage.|
|**Backup information**|Customers would be responsible for taking backup of the Database.|
|**SMTP Requirements**|Customers need to produce their SMTP settings in case they desire to use their internal SMTP instead of Testsigma SMTP servers.|
|**Additional Requirements**|<li> Depending on user preference, the agent can run on Linux, Windows, or Mac machines.<br> <li> The final storage location for screenshots, apps, and other permanent files is the host server where Testsigma containers run.<br> <li> Temporary files like screenshots may need periodic cleaning depending on usage and disk space availability.<br> <li> The server operation does not require any Windows machines.<br> <li> Customer IT teams must regularly perform data backups through regular disk or specific data folder backups.<br> <li> Testsigma On-Prem Server is not a hypervisor-based installation.<br> <li> By default, the customer would be provided URLs ending with testsigmaprivate.com (like https://cutomername.testsigmaprivate.com)<br> <li> If the customer desires to have these pointed to their domain name (like customername.com), then we need the following:<br> - Inform Testsigma before the Onprem build is generated.<br> - Get the SSL certificates of the domain in interest and copy them to the server where installation would happen.<br> <li>For installing Testsigma Recorder on chrome browsers,<br> - We need the ability to enable developer mode.<br> - We need the ability to install the Testsigma recorder in unpacked mode.|
|**Additional Checks**| <li> Check the internet connection to the server machine.<br> <li> Please unblock the ports if blocked. Ports: 3306, 7010, 8080, 8082, 8084, 9090, 9095, 9096, 9097, 4200, 4201, 4203, 4210, 4211, 4220, 4230.|

[[info | **NOTE**:]]
|Admin access is necessary for On-Prem installation.
| - Testsigma will provide a MySQL docker container; if you want to use the hosted MySQL, please acquire one with the above specification.
| - It is recommended to have a scheduled image backup.
| - Admin access is necessary for On-Prem installation.



---
43 changes: 33 additions & 10 deletions src/pages/docs/on-premise setup/setup.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "On-Premise setup with docker-compose file"
title: "On-Premise Setup with Docker-compose File"
order: 26.3
page_id: "Onprem Installation Steps"
metadesc: "This article discusses steps to deploy the docker compose file for Testsigma On-prem setup, how to access the application, how to stop and remove the containers, and more."
Expand All @@ -10,31 +10,40 @@ contextual_links:
- type: section
name: "Contents"
- type: link
name: "Steps to deploy docker compose file"
name: "Steps to Deploy Docker Compose File"
url: "#steps-to-deploy-docker-compose-file"
- type: link
name: "Accessing Application"
url: "#accessing-application"
- type: link
name: "To stop and remove the containers"
name: "To Stop and Remove the Containers"
url: "#to-stop-and-remove-the-containers"
- type: link
name: "Containers defined in the docker compose file"
name: "Containers Defined in the Docker Compose File"
url: "#containers-defined-in-the-docker-compose-file"
- type: link
name: "How to change the Domain Name"
name: "How to Change the Domain Name"
url: "#how-to-change-the-domain-name"
---

<br>

---

You'll receive ***docker-compose.yml*** files based on your requested configuration from Testsigma that specifies the configuration for a multi-container app that contains a MySQL server, a global HTTPD server, a Faktory worker service, and several UI services for various components of the application.

## **Steps to deploy docker compose file**
---

## **Steps to Deploy Docker Compose File**

1. Install Docker and Docker Compose on your system.

2. Open a terminal and navigate to the directory where the docker-compose.yml file is located.

3. Run the command ***docker-compose up*** to start the containers defined in the docker-compose.yml file given by Testsigma. This will start all the services in the background and keep them running even if you close the terminal window.


---

## **Accessing Application**
Along with the given docker-compose files you will receive a list of URLs for accessing the application.

Expand All @@ -50,10 +59,16 @@ Once the application is up and running, you can access it using the IP address o

For Example, the sample **docker-compose.yml** file mentions that the web service is accessible on port 80. You can access it by navigating to **http://&lt;server-ip&gt;80** in your web browser.

## **To stop and remove the containers**
---


## **To Stop and Remove the Containers**
To stop and remove the containers, you can run the command ***docker-compose down***. This command will stop and remove all the containers and networks created by the **docker-compose.yml** file.

## **Containers defined in the docker compose file**
---


## **Containers Defined in the Docker Compose File**

- The MySQL server is named **testsigma\_mysql** and uses the image, **testsigmainc/onprem:mysql-&lt;companyName&gt;-trial-&lt;Version&gt;**. It has a volume mounted to persist data. (Users can also set up their own mysql server and map it in the docker-compose file. For more information on connecting to external/existing MySQL database, refer to [connecting to external MySQL.](https://testsigma.com/docs/getting-started/setup/docker/#connecting-to-external-mysql))
- The Faktory worker service is named as testsigma_worker and it uses the image, **testsigmainc/onprem:worker-&lt;companyName&gt;-trial-&lt;Version&gt;**.
Expand Down Expand Up @@ -97,7 +112,11 @@ TS_APP_SERVER_PROTOCOL: https
[[info | **NOTE**:]]
|All services will connect to a custom network named ***testsigma-network***. Each service will have a health check specified with different intervals, timeouts, and retries, depending on the service.

## **How to change the Domain Name**
---


## **How to Change the Domain Name**

1. From testsigma request the docker image with new domain names using Github Actions.
2. Customer need to replace the HTTPS Certificate in **testsigma-load-balancer** container.
For this they can keep the public key and private key files in the host machine and specify it as volume in the ***'docker-compose'*** file.
Expand All @@ -123,3 +142,7 @@ volumes:
- Here, replace ***'/path/to/new/server.crt'*** with the path to the new ***'server.crt'*** file on your host machine, and replace ***'/path/to/new/server.key'*** with the path to the new ***'server.key'*** file on your host machine.

- When you run ***docker-compose up***, the ***'server.crt'*** and ***'server.key'*** files in the container will be replaced with the new files from the host machine.



---

0 comments on commit 479cf54

Please sign in to comment.