Skip to main content

Updating Guide

  1. Connect to your VM
    Example:
  2. Go to Finmars Directory
    cd /opt/finmars
  3. Edit docker-compose.yml
    replace version in property image: e.g. finmars-core:1.18.0 to finmars-core:1.19.0
    services:
      nginx:
        image: nginx
        volumes:
          - ./nginx/main-domain.conf:/etc/nginx/conf.d/main-domain.conf:ro
          - ./nginx/auth-domain.conf:/etc/nginx/conf.d/auth-domain.conf:ro
          - ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
          - ./nginx/www:/var/www:ro
          - ./nginx/ssl:/etc/letsencrypt
          - ./certbot/webroot:/tmp/certbot
        depends_on:
          - core
          - workflow
          - vue-portal
          - portal
          - workflow-portal
        ports:
          - "80:80"
          - "443:443"
    
      certbot:
        image: certbot/certbot
        volumes:
          - ./nginx/ssl:/etc/letsencrypt
          - ./certbot/webroot:/tmp/certbot
        command: [
          "certonly",
          "--webroot"
        ]
    
      keycloak:
        image: quay.io/keycloak/keycloak:24.0.3
        command: start
        volumes:
          - ./keycloak/keycloak.conf:/opt/keycloak/conf/keycloak.conf:ro
          - ./nginx/ssl:/etc/letsencrypt
          - ./keycloak/themes/finmars:/opt/keycloak/themes/finmars
        environment:
          - KC_DB=postgres
          - KC_DB_URL_HOST=db_keycloak
          - KC_DB_URL_DATABASE=keycloak
          - KC_DB_USERNAME=keycloak
          - KC_DB_PASSWORD=keycloak
          - KC_BOOTSTRAP_ADMIN_USERNAME=admin
          - KC_BOOTSTRAP_ADMIN_PASSWORD=admin
          - KEYCLOAK_ADMIN=admin
          - KEYCLOAK_ADMIN_PASSWORD=admin
        ports:
          - "8004:8080"
        depends_on:
          - db_keycloak
    
      core:
        build: ../finmars-core
        volumes:
          - ../finmars-core/poms:/var/app/poms
        env_file:
          - .env
        environment:
          - DB_NAME=core_realm00000
        depends_on:
          - db
          - rabbitmq
          - redis
          - keycloak
        ports:
          - "8000:8080"
    
      # core-worker:
    
      # core-scheduler:  
    
      core-migration:
        build: ../finmars-core
        env_file:
          - .env
        environment:
          - DB_NAME=core_realm00000
          - INSTANCE_TYPE=job
        depends_on:
          - db
          - redis
    
      workflow:
        build: ../finmars-workflow
        volumes:
          - ../finmars-workflow/workflow:/var/app/workflow
        env_file:
          - .env
        environment:
          - DB_NAME=workflow_realm00000
        depends_on:
          - db
          - rabbitmq
          - redis
          - keycloak
        ports:
          - "8001:8080"
    
      # workflow-worker:
    
      # workflow-scheduler:
    
      workflow-migration:
        build: ../finmars-workflow
        env_file:
          - .env
        environment:
          - DB_NAME=workflow_realm00000
          - INSTANCE_TYPE=job
        depends_on:
          - db
          - redis
    
      # olap:
      #   build: ../finmars-olap
      #   volumes:
      #     - ../finmars-olap/olap:/var/app/olap
      #   env_file:
      #     - .env
      #   environment:
      #     - DB_NAME=olap_realm00000
      #     - DB_USER=postgres
      #     - DB_PASSWORD=postgres
      #   depends_on:
      #     - db
      #     - rabbitmq
      #     - redis
      #   ports:
      #     - "8002:8080"
      
      landing-private:
        build: ../landing-private
        env_file:
          - .env
        ports:
          - "8083:8080"
    
      portal:
        build: ../finmars-portal
        env_file:
          - .env
        ports:
          - "8080:8080" 
    
      vue-portal:
        build: ../finmars-vue-portal
        environment:
          - NUXT_APP_BUILD_ASSETS_DIR=/realm00000/v/_nuxt/
        env_file:
          - .env
        ports:
          - "8081:8080"
    
      workflow-portal:
        build: ../finmars-workflow-portal
        environment:
          - NUXT_APP_BUILD_ASSETS_DIR=/realm00000/w/_nuxt/
        env_file:
          - .env
        ports:
          - "8082:8080"
    
      db:
        image: postgres:13-alpine
        env_file:
          - .env
        environment:
          POSTGRES_USER: ${DB_USER}
          POSTGRES_PASSWORD: ${DB_PASSWORD}
          POSTGRESQL_MAX_OPEN_CONNS: 500
        stdin_open: true
        tty: true
        ports:
          - "5432:5432"
        volumes:
          - ./postgres_data:/var/lib/postgresql/data
    
      db_keycloak:
        image: postgres:13-alpine
        environment:
          POSTGRES_DB: keycloak
          POSTGRES_USER: keycloak
          POSTGRES_PASSWORD: keycloak
        stdin_open: true
        tty: true
        ports:
          - "5435:5432"
        volumes:
          - ./postgres_data_keycloak:/var/lib/postgresql/data
      rabbitmq:
        image: rabbitmq
        ports:
          - "5672:5672"
        stdin_open: true
        tty: true
    
      redis:
        image: redis
        ports:
          - "6379:6379"
        stdin_open: true
        tty: true
    
    volumes:
      postgres_data:
      authorizer_postgres_data:
      certbot-webroot:
  4. Apply changes
    make migrate
    make up

Well done!