We use Compose for Themis launch. Only the MongoDB database is supported to this day and we recommend the use of an image pre-configured by us, matching MongoDB 2.6.12.
To start, create the directory of installation of Themis, that we will name here THEMIS_HOME.
In a terminal, go in the THEMIS_HOME directory, then create a docker-compose.yml file with the following content:
version: '2' services: dataonly: image: themis-registry.promyze.com/themis-data container_name: dataonly-container volumes: - ./themis:/shared - ./data:/data/db - ./log:/data/log mongodb: image: themis-registry.promyze.com/themis-mongodb:2.6.12 container_name: mongodb-container volumes_from: - dataonly
- 27017:27017 themis: image: themis-registry.promyze.com/themis container_name: themis-container
- THEMIS_URL=http://localhost:3001 #REPLACE WITH THE FULL URL OF THEMIS
- WEB_SOCKET_PORT=3000 #REPLACE BY THE PORT USED BY THE SOCKET EXPOSED BY DOCKER
- WEB_SOCKET_HOST=localhost #REPLACE BY THE URL OF THE MACHINE depends_on: - mongodb ports: - 3000:3000 # Replace the left part by the port of your choice - 3001:3001 # Replace the left part by the port of your choice volumes_from: - dataonly
Settings of the Docker container
Configuration of the ports
Themis exposes by default two ports that it is possible to configure via that docker-compose.yml file by going to the section of the file dedicated to the themis service.
- The 3000 port is used by a Socket.io library to exploit WebSocket technology. To change that port, you should modify the WEB_SOCKET_PORT environment variable. Here is an example where the 8090 port is chosen:
themis: image: promyze/themis container_name : themis-container depends_on: - mongodb environment: - WEB_SOCKET_PORT=8090 # The new value has to match the chosen port ports: - 8090:3000 # HOST:DOCKER - You should therefore modify the left value, and not modify the right value. - 3001:3001 volumes_from: - dataonly
- The 3001 port is the port allowing to access to Themis Themis via HTTP. You may change that port in the ports section. Here is an example where the 8091 port has been chosen:
themis: image: promyze/themis container_name : themis-container depends_on: - mongodb ports: - 3000:3000 - 8091:3001 # HOST:DOCKER - You should therefore modify the right value, and not modify the left value. volumes_from: - dataonly
The register of Themis Docker images not being public, you have to sign in with the data of authentication provided by ProMyze. Run the following command:
docker login themis-registry.promyze.com
Enter the following identifiers:
- Login: themis-readonly
- Password: th@pass2017
Then, run the following command to run Themis :
docker-compose up -d
The terminal should display the following output:
Creating dataonly-container Creating mongodb-container Creating themis-container
Wait about 30 seconds, then in your web browser go to the url that you have specified in the THEMIS_URL environment variable.