• In progress
  • Deployment of Marionette Software (GitLab version)

    This document describes initial deployment process for the Marionette Software.

    Marionette Configurator - is a tool set to generate deployment configuration for the Marionette Software.

    diagram.png

    Actions:

    1. Make changes in main configuration file global/config.yaml (yellow block)

    2. Render deployment configuration (red block)

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

    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:

    Screenshot from 2024-01-31 12-19-21.png

     

    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 configuration

    • provide 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:

    1. Stop and Remove Docker Containers:
      Execute the following command to stop all Docker containers:

    2. Drop Database:
      Ensure the existing database is dropped.

    3. Start Following Services:
      Launch the necessary services using Docker Compose:

    4. Check Migration Result:
      Monitor the migration progress in the logs of the db-bridge service. Ensure that migrations are completed successfully.

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

    Admin Panel Manual

    User App Architecture

    End-User Stories

    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.