Installation Guide

Installation Dependencies

The interoperability test platform is built using Docker, which means that it can run on any environment which supports Docker. Installation guides for Docker are available for Ubuntu, macOS and Windows.

Additionally, the platform is developed using microservices which are coordinated using docker-compose. On Windows and macOS, docker-compose should be installed automatically with Docker. On a Linux host, docker-compose must be installed separately using this guide.

You can check that both Docker and docker-compose have been correctly installed by running the following commands on your machine:

$ docker --version
# Docker version 19.03.11, build 42e35e61f3
$ docker-compose --version
# docker-compose version 1.26.0, build d4451659

Finally, we recommend the use of git to download source code and fetch updates. Installation guides for git for all platforms can be found here.

Project Set-up

To simplify installation, we have prepared a template repository with example configurations for installation here. To begin with, click "Use this template" to make a copy of the repository in your own namespace. Once the template has been applied, you can copy the configuration files onto your host machine using git:

$ git clone interop-test-platform
$ cd interop-test-platform

Certain configuration files must be adjusted to customise the test platform to your own environment. More detail on the configuration options required is available in the README file within the repository (and is guaranteed to be up to date with the version of interop-release-configuration you are using). In particular, you should take note of the platform version which is configured inside docker-compose.yml.

Once the configuration files have been adjusted, you should be able to launch all services using the following command:

$ docker-compose up -d
# Creating network "interop-test-platform_default" with the default driver
# Creating interop-test-platform_redis_1 ... done
# Creating interop-test-platform_mysqldb_1 ... done
# Creating interop-test-platform_app_1 ... done
# Creating interop-test-platform_queue_1 ... done

This will download Docker images corresponding to the appropriate version of the test platform, and launch them on your system.

Database Installation

At this point, docker-compose has launched all services required for the test platform, but they will require further set-up. You can now set up the database by running the migration script.

$ docker-compose exec app php artisan migrate:refresh --seed

Note that this command will perform a "factory reset" on the database.

Logging In

At this point, all services are set up, and you should be able to log in. You should now be able to browse to the domain you configured in .env and see a login page.


Backing Up

Updating the test platform is very straightforward and unlikely to cause any data loss. Before you proceed, you may nonetheless choose to make a backup of your database with the following command:

$ docker-compose exec mysqldb bash -c "mysqldump -p -u $DB_USERNAME $DB_DATABASE" > itp_`date +%Y-%m-%d`.sql
# Enter password...

This will place a .sql dump file inside the your working directory.

Fetching Updates

To update the project code, update the version number inside docker-compose, and then pull the new images:

$ docker-compose pull
# Pulling queue ... done
# Pulling app ... done

Once you have obtained the latest code, you can restart the services, install any missing dependencies and update the database structure using another make script:

$ docker-compose up -d --force-recreate
# Recreating test-platform_redis_1 ... done
# Recreating test-platform_mysqldb_1 ... done
# Recreating test-platform_queue_1 ... done
# Recreating test-platform_app_1 ... done
$ docker-compose exec app php artisan migrate