Testiny Server
Testiny is built entirely on Docker and is designed to be deployed in your own infrastructure. Testiny Server is available for on-premises use.
If you're interested in trying out Testiny Server, please contact us via email: [email protected].
Setup
Testiny Server is shipped in a single docker image, which contains all necessary components.
- Pull the image from the provided container registry.
- Launch the image as described in Running Testiny Server.
- Open the Testiny Server web interface and follow the setup instructions.
- Apply your license key to unlock all features.
Please note, that with Testiny Server you are solely responsible for creating backups and storing them safely.
System requirements
We recommend the following minimum system requirements for your Testiny Server installation for 50-100 users:
- reasonable modern CPU with dual core
- 4GB Memory
Environment variables
Testiny Server is completely configured using environment variables that need to be passed to the Docker container.
Without configuring the necessary environment variables, Testiny Server may not start correctly or its functionality may be impaired.
Important:
-
in default value means no default value.SERVER_URL
has to be set correctly; otherwise, Testiny Server will not work correctly!
Required
Variable | Description | Example | Defaults to |
---|---|---|---|
SERVER_URL | Public Url for Testiny Server | https://testiny.mycompany.org | - |
DB | postgres or sqlite | postgres | - |
Optional
Show optional Testiny Server environment variables
Variable | Description | Defaults to |
---|---|---|
PG_HOST | Host of postgres DB | 127.0.0.1 |
PG_PORT | Port of postgres DB | 5432 |
PG_USER | User of postgres DB | testiny |
PG_PASSWORD | Password of postgres DB | - |
PG_MAX_POOL | Size of postgres connection pool | 20 |
PG_IDLE_TIMEOUT | Postgres idle timeout in milliseconds | 60000 |
PG_USE_SSL | Postgres connection uses SSL | false |
SMTP_HOST | Host of SMTP Mailserver | 127.0.0.1 |
SMTP_PORT | Port of SMTP Mailserver | 587 |
SMTP_USER | User of SMTP Mailserver | - |
SMTP_PASSWORD | Password of SMTP Mailserver | - |
SMTP_AUTH_SECURE | SMTP requires secure authentication | false |
SMTP_REQUIRE_TLS | SMTP requires TLS | false |
SMTP_IGNORE_TLS | SMTP ignores TLS | false |
TESTINY_MAIL_FROM | Sender mail address | [email protected] |
BLOB_MAX_SIZE | Max attachment size (in bytes) | 104857600 (100MiB) |
JSON_MAX_REQUEST_SIZE | May request size (in bytes) | 8388608 (8MiB) |
TESTINY_LOG_LEVEL | debug ,info ,warn ,error | info |
PostgreSQL Configuration
Testiny Server officially supports PostgreSQL 14.
Testiny Server creates three databases for you if the specified PG_USER
in the environment variables has permissions to create databases:
central
- containing user informationtenant_main
- containing data (tests, runs, ...) of the main organizationtenant_testing
- containing data of the test organization (to use as a playground)
If the specified PG_USER
does not have permission to create databases, you could temporarily give the user more permissions during setup and then reduce their permissions to create/drop tables, CRUD operations, etc. or you need to create these three databases yourself. Learn how to setup the database yourself in this database initialization guide.
Also make sure, that the following configuration is set:
- set ENCODING to
UTF8
(default value for PostgreSQL) - set TABLESPACE to
pg_default
(default value for PostgreSQL) - If you use replication in your PostgreSQL database, set
synchronous_commit
toremote_apply
. - Collation can be configured freely, as long as it's compatible with UTF8 encoding.
Running Testiny Server
You can run Testiny Server using Docker Compose or Docker CLI, as shown with the examples below.
Testiny Server stores blobs (attachments, images, etc...) in a volume and this volume needs to be mounted at /testiny/storage
.
Please note, that you need to use and maintain your own PostgreSQL or SQLite database. In the Docker Compose example, a PostgreSQL database is pre-configured so that you can easily get started with Testiny Server.
Once Testiny Server is runinng, open the Testiny Server UI in your browser using the SERVER_URL
that you've configured and continue with the setup.
You need have access to our registry to pull the image. Please contact us via email to get access: [email protected].
Please note, that Testiny Server does not provide HTTPS. You need to set up your own HTTPS reverse proxy/gateway.
Using Docker Compose
docker-compose.yml
-
Copy the following code into a
docker-compose.yml
file. In this file, a PostgrSQL database is pre-configured to get started easily. This compose file may not be suitable for production use and you will need to modify it to suit your infrastructure and needs. -
Adjust the environment variables according to your needs (especially
SERVER_URL
andYOUR_SECRET_DB_PASSWORD
). In this example,SERVER_URL
is set tohttp://localhost:7700
.services:
testiny_postgres:
image: postgres:14
container_name: testiny_postgres
networks:
- testiny_net
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: YOUR_SECRET_DB_PASSWORD
volumes:
- testiny_postgres_data:/var/lib/postgresql/data
restart: unless-stopped
testiny_server:
image: registry.gitlab.com/testiny/server:stable
container_name: testiny_server
depends_on:
testiny_postgres:
condition: service_started
networks:
- testiny_net
ports:
- "7700:7700"
environment:
SERVER_URL: "http://localhost:7700"
DB: postgres
PG_HOST: testiny_postgres
PG_USER: admin
PG_PASSWORD: YOUR_SECRET_DB_PASSWORD
volumes:
- testiny_storage:/testiny/storage
restart: unless-stopped
volumes:
testiny_postgres_data:
name: testiny_postgres_data
external: false
testiny_storage:
name: testiny_storage
external: false
networks:
testiny_net:
name: testiny_net -
Start Testiny Server with
docker compose up -d
Using Docker CLI
- Linux
- Windows
docker run -it -p 7700:7700 \
-v testiny_storage:/testiny/storage \
-e DB='postgres' \
-e PG_HOST='127.0.0.1' \
-e PG_PORT='5432' \
-e PG_USER='postgres' \
-e PG_PASSWORD='mysecretpassword' \
-e SERVER_URL='http://localhost:7700' \
--name testiny-server \
registry.gitlab.com/testiny/server:stable
docker run -it -p 7700:7700 ^
-v testiny_storage:/testiny/storage ^
-e DB="postgres" ^
-e PG_HOST="127.0.0.1" ^
-e PG_PORT="5432" ^
-e PG_USER="postgres" ^
-e PG_PASSWORD="mysecretpassword" ^
-e SERVER_URL="http://localhost:7700" ^
--name testiny-server ^
registry.gitlab.com/testiny/server:stable
Finishing the Setup
Once Testiny Server is running, open the Testiny Server UI in your browser using the SERVER_URL
that you've configured and follow the setup instructions shown. We have also summarized the steps here:
-
Fill in all required fields and click 'Complete setup' to create a new instance and admin account.
-
Testiny Server generates secrets to access the database. Please make sure you save or copy the secrets to a secured location. You will need them to create backups or to recover data. The following tokens and keys will be created:
- Backup export token and the private key passphrase (
testiny_server_backup_secrets.txt
) - Public key .pem file (
testiny_server_backup_public_key.pem
) - Private key .pem file (
testiny_server_backup_private_key.pem
)
dangerMake sure to save or copy the generated secrets to a secure location. You (nor anyone else, including Testiny) do not have access to those secrets afterward. Also, ensure that your container storage volume (/testiny/storage) is mounted to a persistent volume with backups.
- Backup export token and the private key passphrase (
-
You have now successfully created your instance and admin account. You can now continue with applying a license key to activate Testiny Server.
Activating Testiny Server
A valid license key is required to activate and use Testiny Server. Please contact us at [email protected] to purchase Testiny Server. Follow the steps below to activate a license:
- Login with the administrator account (created during the initial setup)
- Navigate to Settings > Organization
- Click on 'Apply License' and insert the license provided by the Testiny team.
Upgrading Testiny Server
To upgrade Testiny Server, pull the latest stable version from the container registry and recreate the container. All required upgrade steps will be automatically executed upon startup.
Downgrading to a previous version is not supported.
Docker compose
Just pull a new image and restart the server.
docker compose pull
docker compose up -d
Docker
docker stop testiny-server
docker rm testiny-server
docker pull registry.gitlab.com/testiny/server:stable
- Execute the same command as shown under Using Docker