Skip to main content

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.

info

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.

  1. Pull the image from the provided container registry.
  2. Launch the image as described in Running Testiny Server.
  3. Open the Testiny Server web interface and follow the setup instructions.
  4. Apply your license key to unlock all features.
info

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

VariableDescriptionExampleDefaults to
SERVER_URLPublic Url for Testiny Serverhttps://testiny.mycompany.org-
DBpostgres or sqlitepostgres-

Optional

Show optional Testiny Server environment variables

VariableDescriptionDefaults to
PG_HOSTHost of postgres DB127.0.0.1
PG_PORTPort of postgres DB5432
PG_USERUser of postgres DBtestiny
PG_PASSWORDPassword of postgres DB-
PG_MAX_POOLSize of postgres connection pool20
PG_IDLE_TIMEOUTPostgres idle timeout in milliseconds60000
PG_USE_SSLPostgres connection uses SSLfalse
SMTP_HOSTHost of SMTP Mailserver127.0.0.1
SMTP_PORTPort of SMTP Mailserver587
SMTP_USERUser of SMTP Mailserver-
SMTP_PASSWORDPassword of SMTP Mailserver-
SMTP_AUTH_SECURESMTP requires secure authenticationfalse
SMTP_REQUIRE_TLSSMTP requires TLSfalse
SMTP_IGNORE_TLSSMTP ignores TLSfalse
TESTINY_MAIL_FROMSender mail address[email protected]
BLOB_MAX_SIZEMax attachment size (in bytes)104857600 (100MiB)
JSON_MAX_REQUEST_SIZEMay request size (in bytes)8388608 (8MiB)
TESTINY_LOG_LEVELdebug,info,warn,errorinfo

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 information
  • tenant_main - containing data (tests, runs, ...) of the main organization
  • tenant_testing - containing data of the test organization (to use as a playground)
info

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 to remote_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.

info

You need have access to our registry to pull the image. Please contact us via email to get access: [email protected].

info

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 and YOUR_SECRET_DB_PASSWORD). In this example, SERVER_URL is set to http://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

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:

  1. Fill in all required fields and click 'Complete setup' to create a new instance and admin account.

  2. 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)
    danger

    Make 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.

  3. 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:

  1. Login with the administrator account (created during the initial setup)
  2. Navigate to Settings > Organization
  3. 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.

info

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