Deployment Guide
Minimum Requirements:
- Processor
- 32 Cores
- Disk
- 100 GB of free space
- Disk must be local to server (ideally an SSD)
- RAM
- 128 GB of RAM
- /dev/shm mounted as RAM disk and accessible
- Network
- Multicast networking between server boxes
- Database
- SQL database with 100 GB space
- Software
- Access to bash shell
- Java 17 or above
- ha-proxy 1.8.27-5 or above
Optional
- Software
- Docker
- Access bash shell with user in 'docker' group
Installation
Platform installation
- 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
- Extract the provided
platform-(x.y.z).tar.gzto 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
- After running 2, that will create a version number directory
/opt/keysquare/platform/0.1.2/ - Change directory to installation directory and run
./setup.sh
$ cd /opt/keysquare/platform/0.1.2
$ ./setup.sh
- Run
./up-core.shto start the main server running core infrastructure (e.g. Sequencer)
$ ./up-core.sh
- Run
./up-secondary.shon secondary boxes
$ ./up-secondary.sh
Platform installation verification checks
- Open
http://<server>:6500in 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
- When you run Dev Container on Linux, if you start the process, it's running directly on the Linux server
- Dev Containers are awesome
- Repeatable environments
- Remote development is awesome
- Cons
- Java in VS Code is a bit hit or miss
- IntelliJ users need Ultimate
- Eclipse users are out of luck
- Pros
- Windows and Dev Containers
- Pros
- Develop however you please
- Cons
- Running apps on your workstation is less performant than a server
- Pros
- Traditional Windows dev workflow
- Linux without an IDE
Linux and Dev Containers
- Extract the provided
client-(x.y.z).tar.gzto 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
- After running 1, that will create a version number directory
/opt/keysquare/client/0.1.2/ - Change directory to the directory and run
./setup.sh
$ cd /opt/keysquare/client/0.1.2
$ ./setup.sh
- Do a mvn clean compile to verify
$ mvn clean compile
- Load a remote session in VS Code or IntelliJ Ultimate and load the directory as a Dev Container
Default configuration
Ports:
| Application | Property | Default Port |
|---|---|---|
| KS Ingress Controller | KS_INGRESS_HTTP_PORT | 6500 |
| Key UI | KS_KEY_UI_HTTP_PORT | 6600 |
| KeySquare Proxy | KS_KEY_SQUARE_PROXY_GRPC_PORT | 6700 |
| KeyAccess | KS_KEY_ACCESS_HTTP_PORT | 6800 |
| Web-Data-Server | KS_WEB_DATA_SERVER_HTTP_PORT | 6900 |
| Grafana | KS_QUESTDB_HTTP_PORT | 5500 |
| QuestDb | KS_GRAFANA_HTTP_PORT | 5510 |
Ingress Routes:
| Route | Application | Full Path |
|---|---|---|
| * | Key UI | http://<server>:6500 |
| /api/web | Web-Data-Server | http://<server>:6500/api/web |
| /api/key-access | KeyAccess | http://<server>:6500/api/key-access |
| /api/proxy | KeySquare Proxy | http://<server>:6500/api/proxy |
Start Building!
Ready to build your first application?
Learn how to do so in the language of your choice: