Skip to main content

Deployment Guide

Minimum Requirements:

  • Processor
    1. 32 Cores
  • Disk
    1. 100 GB of free space
    2. Disk must be local to server (ideally an SSD)
  • RAM
    1. 128 GB of RAM
    2. /dev/shm mounted as RAM disk and accessible
  • Network
    1. Multicast networking between server boxes
  • Database
    1. SQL database with 100 GB space
  • Software
    1. Access to bash shell
    2. Java 17 or above
    3. ha-proxy 1.8.27-5 or above

Optional

  • Software
    1. Docker
    2. Access bash shell with user in 'docker' group

Installation

Platform installation

  1. If a platform has been previously installed and is running, go to the installation directory and turn it off e.g.
$ cd /opt/keysquare/platform/0.1.1
$ ./down-core.sh

or

$ cd /opt/keysquare/platform/0.1.1
$ ./down-secondary.sh
  1. Extract the provided platform-(x.y.z).tar.gz to a suitable location e.g. /opt/keysquare/platform. Note (x.y.z) represents the version number.
$ tar xvzf platform-0.1.2.tar.gz -C /opt/keysquare/platform
  1. After running 2, that will create a version number directory /opt/keysquare/platform/0.1.2/
  2. Change directory to installation directory and run ./setup.sh
$ cd /opt/keysquare/platform/0.1.2
$ ./setup.sh
  1. Run ./up-core.sh to start the main server running core infrastructure (e.g. Sequencer)
$ ./up-core.sh
  1. Run ./up-secondary.sh on secondary boxes
$ ./up-secondary.sh

Platform installation verification checks

  1. Open http://<server>:6500 in your browser to view data replacing <server> with the hostname where the platform is being installed

Java Client Sample Installation

You can run the Java Client Samples in a number of ways

  • Remote Dev on Linux and Dev Containers
    • Pros
      • Remote development is awesome
        • When you run Dev Container on Linux, if you start the process, it's running directly on the Linux server
          • Less load on your laptop
          • Linux server will have better networking
          • Linux server will have access to things that you may not
      • Dev Containers are awesome
        • Repeatable environments
    • Cons
      • Java in VS Code is a bit hit or miss
      • IntelliJ users need Ultimate
      • Eclipse users are out of luck
  • Windows and Dev Containers
    • Pros
      • Develop however you please
    • Cons
      • Running apps on your workstation is less performant than a server
  • Traditional Windows dev workflow
  • Linux without an IDE

Linux and Dev Containers

  1. Extract the provided client-(x.y.z).tar.gz to a suitable location e.g. /opt/keysquare/client/. Note (x.y.z) represents the version number.
$ tar xvzf client-0.1.2.tar.gz -C /opt/keysquare/client
  1. After running 1, that will create a version number directory /opt/keysquare/client/0.1.2/
  2. Change directory to the directory and run ./setup.sh
$ cd /opt/keysquare/client/0.1.2
$ ./setup.sh
  1. Do a mvn clean compile to verify
$ mvn clean compile
  1. Load a remote session in VS Code or IntelliJ Ultimate and load the directory as a Dev Container

Default configuration

Ports:

ApplicationPropertyDefault Port
KS Ingress ControllerKS_INGRESS_HTTP_PORT6500
Key UIKS_KEY_UI_HTTP_PORT6600
KeySquare ProxyKS_KEY_SQUARE_PROXY_GRPC_PORT6700
KeyAccessKS_KEY_ACCESS_HTTP_PORT6800
Web-Data-ServerKS_WEB_DATA_SERVER_HTTP_PORT6900
GrafanaKS_QUESTDB_HTTP_PORT5500
QuestDbKS_GRAFANA_HTTP_PORT5510

Ingress Routes:

RouteApplicationFull Path
*Key UIhttp://<server>:6500
/api/webWeb-Data-Serverhttp://<server>:6500/api/web
/api/key-accessKeyAccesshttp://<server>:6500/api/key-access
/api/proxyKeySquare Proxyhttp://<server>:6500/api/proxy

Start Building!

Ready to build your first application?

Learn how to do so in the language of your choice: