Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
operations: gitlab.tunex.io:5050/marionette-develop/core/operations:latest
balances: gitlab.tunex.io:5050/marionette-develop/core/balances:latest
accounting: gitlab.tunex.io:5050/marionette-develop/core/accounting:latest
trading:
  enabled: true
  image: gitlab.tunex.io:5050/marionette-develop/core/trading:latest
  separate_trading_user_account: false
  default_market: "ETH-USDT"

...

Docker Compose Templates:

View file
namebackend.yaml.t

...

File:

...

Two files in the templates/compose folder need to be replaced to include the new images listed above. Note that one image is hardcoded in the back-end.

Action Required:

...

Download the updated files and replace the existing ones in the templates/compose folder.

templates/compose/required.yaml.t
Paste the code below into the position indicated on the screen:

...

Code Block
    clickhouse:
        image: clickhouse/clickhouse-server
        volumes:
            - ../data/clickhouse_data/:/var/lib/clickhouse/
            - ../data/clickhouse_logs/:/var/log/clickhouse-server/
        ulimits:
            nproc: 65535
            nofile:
                soft: 262144
                hard: 262144

File: templates/compose/backend.yaml.t
Paste the code below into the position indicated on the screen:

...

Replace the whole operations.

Code Block
    operations:
        restart: always
        image: {{components.operations}}
        env_file:
            - ../config/database.env
        environment:
            CANCEL_OVERAMOUNT: 1
{{#ifEquals components.trading.enabled true}}
            SEPARATE_TRADING_USER_ACCOUNT: {{#ifEquals components.trading.separate_trading_user_account true}}1{{else}}0{{/ifEquals}} 
{{/ifEquals}}
        depends_on:
            - clickhouse
{{#ifEquals mode "swarm"}}
        deploy:
            labels:
                - "traefik.http.routers.operations.rule=Host(`{{base_url}}`) && PathPrefix(`/components/operations`)"
                - "traefik.enable=true"
                - "traefik.http.services.operations.loadbalancer.server.port=3000"
                {{#if components.traefik.ssl}}
                - "traefik.http.routers.operations.entrypoints=websecure"
                - "traefik.http.routers.operations.tls=true"
                - "traefik.http.routers.operations.tls.certresolver=myresolver"
                - "traefik.http.routers.operations.middlewares=secureheaders"
                {{else}}
                - "traefik.http.routers.operations.entrypoints=web"
                {{/if}}
{{/ifEquals}}
{{#ifEquals mode "compose"}}
        labels:
            - "traefik.http.routers.operations.rule=Host(`{{base_url}}`) && PathPrefix(`/components/operations`)"
            - "traefik.enable=true"
            - "traefik.http.services.operations.loadbalancer.server.port=3000"
            {{#if components.traefik.ssl}}
            - "traefik.http.routers.operations.entrypoints=websecure"
            - "traefik.http.routers.operations.tls=true"
            - "traefik.http.routers.operations.tls.certresolver=myresolver"
            - "traefik.http.routers.operations.middlewares=secureheaders"
            {{else}}
            - "traefik.http.routers.operations.entrypoints=web"
            {{/if}}
{{/ifEquals}}

File: templates/compose/backend.yaml.t
Paste the code below into the position indicated on the screen:

...

Replace the balances

Code Block
  balances:
        restart: always
        image: {{components.balances}}
        env_file:
            - ../config/database.env
        environment:
            LOGLEVEL: {{log_level}}
            NODE_OPTIONS: --max-old-space-size=14000
        depends_on:
            - clickhouse
{{#ifEquals mode "swarm"}}
        deploy:
            labels:
                - "traefik.http.routers.balances.rule=Host(`{{base_url}}`) && PathPrefix(`/components/balances`)"
                - "traefik.enable=true"
                - "traefik.http.services.balances.loadbalancer.server.port=3000"
                {{#if components.traefik.ssl}}
                - "traefik.http.routers.balances.entrypoints=websecure"
                - "traefik.http.routers.balances.tls=true"
                - "traefik.http.routers.balances.tls.certresolver=myresolver"
                - "traefik.http.routers.balances.middlewares=secureheaders"
                {{else}}
                - "traefik.http.routers.balances.entrypoints=web"
                {{/if}}
{{/ifEquals}}
{{#ifEquals mode "compose"}}
        labels:
            - "traefik.http.routers.balances.rule=Host(`{{base_url}}`) && PathPrefix(`/components/balances`)"
            - "traefik.enable=true"
            - "traefik.http.services.balances.loadbalancer.server.port=3000"
            {{#if components.traefik.ssl}}
            - "traefik.http.routers.balances.entrypoints=websecure"
            - "traefik.http.routers.balances.tls=true"
            - "traefik.http.routers.balances.tls.certresolver=myresolver"
            - "traefik.http.routers.balances.middlewares=secureheaders"
            {{else}}
            - "traefik.http.routers.balances.entrypoints=web"
            {{/if}}
{{/ifEquals}}

File: templates/compose/backend.yaml.t
Paste the code below into the position indicated on the screen:

...

Replace the trading and add the accounting in the code bellow.

Code Block
    trading:
        restart: always
        image: {{components.trading.image}}
        env_file:
            - ../config/database.env
        environment:
            LOGLEVEL: {{log_level}}
            SEPARATE_TRADING_USER_ACCOUNT: {{#ifEquals components.trading.separate_trading_user_account true}}1{{else}}0{{/ifEquals}}
        depends_on:
            - clickhouse
{{#ifEquals mode "swarm"}}
        deploy:
            labels:
                - "traefik.http.routers.trading.rule=Host(`{{base_url}}`) && PathPrefix(`/components/trading`)"
                - "traefik.enable=true"
                - "traefik.http.services.trading.loadbalancer.server.port=3000"
                {{#if components.traefik.ssl}}
                - "traefik.http.routers.trading.entrypoints=websecure"
                - "traefik.http.routers.trading.tls=true"
                - "traefik.http.routers.trading.tls.certresolver=myresolver"
                - "traefik.http.routers.trading.middlewares=secureheaders"
                {{else}}
                - "traefik.http.routers.trading.entrypoints=web"
                {{/if}}
{{/ifEquals}}
{{#ifEquals mode "compose"}}
        labels:
            - "traefik.http.routers.trading.rule=Host(`{{base_url}}`) && PathPrefix(`/components/trading`)"
            - "traefik.enable=true"
            - "traefik.http.services.trading.loadbalancer.server.port=3000"
            {{#if components.traefik.ssl}}
            - "traefik.http.routers.trading.entrypoints=websecure"
            - "traefik.http.routers.trading.tls=true"
            - "traefik.http.routers.trading.tls.certresolver=myresolver"
            - "traefik.http.routers.trading.middlewares=secureheaders"
            {{else}}
            - "traefik.http.routers.trading.entrypoints=web"
            {{/if}}
{{/ifEquals}}

    accounting:
        restart: always
        image: {{components.accounting}}
        env_file:
            - ../config/database.env
        depends_on:
            - clickhouse
{{#ifEquals mode "swarm"}}
        deploy:
            labels:
                - "traefik.http.routers.accounting.rule=Host(`{{base_url}}`) && PathPrefix(`/components/accounting`)"
                - "traefik.enable=true"
                - "traefik.http.services.accounting.loadbalancer.server.port=3000"
                {{#if components.traefik.ssl}}
                - "traefik.http.routers.accounting.entrypoints=websecure"
                - "traefik.http.routers.accounting.tls=true"
                - "traefik.http.routers.accounting.tls.certresolver=myresolver"
                - "traefik.http.routers.accounting.middlewares=secureheaders"
                {{else}}
                - "traefik.http.routers.accounting.entrypoints=web"
                {{/if}}
{{/ifEquals}}
{{#ifEquals mode "compose"}}
        labels:
            - "traefik.http.routers.accounting.rule=Host(`{{base_url}}`) && PathPrefix(`/components/accounting`)"
            - "traefik.enable=true"
            - "traefik.http.services.accounting.loadbalancer.server.port=3000"
            {{#if components.traefik.ssl}}
            - "traefik.http.routers.accounting.entrypoints=websecure"
            - "traefik.http.routers.accounting.tls=true"
            - "traefik.http.routers.accounting.tls.certresolver=myresolver"
            - "traefik.http.routers.accounting.middlewares=secureheaders"
            {{else}}
            - "traefik.http.routers.accounting.entrypoints=web"
            {{/if}}
{{/ifEquals}}

...

Server Migration:

This release introduces a new database, ClickHouse. To ensure a successful migration, follow the steps below for the initial setup.

...

Code Block
docker-compose up -d

Re-migration.

If you saw the error this is how you do migration manually.

  1. Chcek puppeteer and remember balance of someone.

  2. start accounting

  3. open clickhouse client, then check if the tables exist

  4. Code Block
    delete from ledgerRecords where true

  5. open logs for accounting in other terminal

    Code Block
    docker compose logs -f accounting
  6. In new windows run the marionette cli tool. ./m cli

  7. run the migration

    Code Block
    call 'accounting.migrate' 
  8. make sure it is finished, check the logs

  9. if no errors migration is done

  10. restart balances

    Code Block
    docker compose restart balances
  11. check puppeteer for balances and make sure the balances are same and there are not duplicate records