Deployment Instructions - GitLab Images
This document describes initial deployment process for the Marionette Software.
Marionette Configurator - is a tool set to generate deployment configuration for the Marionette Software.
Actions:
Make changes in main configuration file
global/config.yaml
(yellow block)Render deployment configuration (red block)
Make deployment on the server or locally (green blocks)
Many settings apply to multiple services. Therefore, they can be repeated in many configuration and compose files. So that when changing such settings there is no need to edit a large number of system files, we place specific parameters in a separate configuration file global/config.yaml
. The configurator uses data from this file to fill in variables in template files (see handlebars).
Table of content
- 1 1. Prerequisites
- 1.1 1.1. Hardware
- 1.2 1.2. Software
- 2 2. Setup "Marionette Configurator"
- 2.1 2.1. Fetch application dependencies
- 2.2 2.2. Check run of the marionette tool:
- 2.3 2.3. Create key-pair for load balancer
- 2.4 2.4. Configure
- 2.5 2.4.1. Local deployment
- 2.6 2.4.2 Server deployment
- 2.7 2.5. Run render-config to create compose and config files from templates
- 2.8 2.6. Pull Docker images
- 2.9 2.7. Run all Marionette Stack services
- 2.10 2.8. Check services
- 2.11 In case it's a new instance:
- 3 3. Admin Panel
- 4 Conclusion
- 5 Extensions: Third party service providers
- 5.1 1. Storage
- 5.2 2. SMS verification
- 5.3 3. Emailing
1. Prerequisites
Before you start, you have to prepare your hardware and software.
This document describe deployment on Ubuntu Server 23.10. There are no OS dependency due to Docker-based nature of Marionette services. Probably it will work on any Docker friendly infrastructure.
1.1. Hardware
Minimum hardware requirements (physical or virtual server):
CPU: 6
RAM: 10 GB
Disk: 40 GB
Note: Hardware resources must be estimated during technical interview according to Marionette Software settings
Connect to the VM via SSH in terminal or command line prompt, if you need more details on launching it and connecting to remote machine or using Recovery Console please read How to Use SSH to Connect to a Remote Server in Linux or Windows article.
This guide uses Linux terminal.
1.2. Software
Docker Engine 20.10+ (see installation guide)
Docker Compose (see installation guide)
2. Setup "Marionette Configurator"
Make sure you have a copy of a repository.
Note: All shell commands in this section are executed in Marionette Configurator root directory (directory where the project was cloned/downloaded)
2.1. Fetch application dependencies
(cd tool && npm install)
2.2. Check run of the marionette tool:
./m
You should receive:
2.3. Create key-pair for load balancer
mkdir config/secrets
Create couple of RSA keys for using by Marionette project (use the source for information)
You may get similar to:
Check generated keys inside current folder:
The result should be 2 generated keys:
2.4. Configure
2.4.1. Local deployment
Create couple certificate keys for using by Marionette project (use the source for information)
Check generated keys inside current folder:
The result should be 2 generated keys: cert.key and key.pem
Add to /etc/hosts following line:
It must be similar to:
2.4.2 Server deployment
To configure software you need to modify global/config.yaml
configuration file.
a. Change base_url to your domain name
b. Change localhost_run to false
c. If you have file storage, sms and email providers you can configure:
Configure storage. See Storage configuration details here
Configure emailing. See Emailing configuration details here.
Configure SMS verification. See SMS verification configuration details here.
2.5. Run render-config to create compose and config files from templates
The result should be like next screen (all templates successfully 'Done'):
2.6. Pull Docker images
Pull Docker image to ensure availability/accessibility
In success case You should get (all docker images pull will 'done'):
Note: There are cases of troubleshooting You can mostly get on the reason of not enough user rights for docker images or errors in configuration
To resolve similar troubles You should:
check properly settings in the Marionette configuration file
global/config.yaml
in case of errors in configurationprovide the screen evidence to our technical staff for check your rights on the TuneX Docker images repository in case not enough user rights
Note: Follow the next step only if the current step was successful
2.7. Run all Marionette Stack services
All services will start and you should see all "green" done for each service:
2.8. Check services
example screen:
In case it's a new instance:
Stop and Remove Docker Containers:
Execute the following command to stop all Docker containers:Drop Database:
Ensure the existing database is dropped.Start Following Services:
Launch the necessary services using Docker Compose:Check Migration Result:
Monitor the migration progress in the logs of the db-bridge service. Ensure that migrations are completed successfully.Start Other Services:
Once migrations are finished, start the remaining services:
3. Admin Panel
Admin Panel is a web admin panel of Marionette Stack.
Open Admin Panel in browser
Local deployment:
Follow https://marionette.localhost/admin
Server deployment:
Follow https://<domain name>/admin
Use default login: qa@tunex.io, password: changeP@ssword123 to login
N.B. If you make local deployment you can receive following:
Click on “Advanced” then “Proceed to marionette.localhost (unsafe)”
Conclusion
You have finished the initial deployment of the Marionette Stack.
You can know more about system configurations and cababilities from these docs:
Extensions: Third party service providers
In this section you have to choose third-party providers, register accounts, create API keys, etc.
1. Storage
Marionette requires a storage to keep KYC documents and logos.
Choose and configure one of:
See Storage configuration details here.
2. SMS verification
Marionette provides few integrations with SMS providers to be able to identify your users.
You have to choose and configure one of:
See SMS verification configuration details here.
3. Emailing
Marionette sends emails in a lot of business cases like User Registration, Password Restoration. etc.
To make emailing enabled, you have to choose and configure one of:
See Emailing configuration details here.