DOCS
Ask or search…
K
Links
Comment on page

Installation

Learn how to run PACE in your local environment
There are several ways to run PACE – including starting the Spring Boot application from your IDE – but the easiest way to run it, is via Docker. This way, no JVM is needed, and a REST interface to PACE is included out of the box (whereas the standalone Spring Boot application only exposes a gRPC interface).
This document focuses on getting PACE up and running on your local machine. We will discuss other environments – such as Kubernetes – elsewhere in the documentation.

Prerequisites

Before you get started, make sure you've installed the following tools:
The relative location of the files created in the rest of this document can be seen as titles in the respective code blocks.
Follow the steps in the Github Authentication docs to get access to the repo and the docker images.

Create a basic PACE configuration

The following config is used for configuring your PACE application. If you use your own Postgres instance, modify accordingly.
config/application.yaml
1
spring:
2
datasource:
3
url: jdbc:postgresql://postgres:5432/postgres
4
hikari:
5
username: postgres
6
password: postgres
7
schema: public
If you're not familiar with JVM / Spring Boot applications, hikari is a widely adopted connection pooling library.

Create a Docker Compose setup

Create the following docker-compose.yaml in the parent directory of where you created config/application.yaml.
Extra Spring Boot configuration is configured to be read from an**/app/config**volume. Be sure to add all relevant Spring Boot configuration files there. The below setup mounts the config dir to this volume.
docker-compose.yaml
1
version: '3.5'
2
3
services:
4
postgres:
5
container_name: pace_postgres
6
image: postgres
7
environment:
8
POSTGRES_USER: postgres
9
POSTGRES_PASSWORD: postgres
10
PGDATA: /data/postgres
11
volumes:
12
- postgres:/data/postgres
13
ports:
14
- "5432:5432"
15
networks:
16
- postgres
17
18
pace:
19
container_name: pace
20
# you may want to update the image to the latest version
21
image: ghcr.io/getstrm/pace:1.0.0-alpha.7
22
volumes:
23
- ./config/:/app/config/
24
25
ports:
26
- "8080:8080" # Spring Boot
27
- "9090:9090" # Envoy JSON / gRPC Proxy
28
- "50051:50051" # gRPC
29
networks:
30
- postgres
31
32
networks:
33
postgres:
34
driver: bridge
35
36
volumes:
37
postgres:
38

Authenticate with the GitHub container registry (ghcr.io)

If you are already logged in to ghcr.io with Docker, you can skip this step. If not, or if you get an unauthorized exception during the next step, you most likely need to do follow the GitHub Authentication instructions.

Start interacting with your PACE instance

To start pace, execute docker compose up in the directory containing your docker-compose.yaml file. You should see the Spring Boot startup logs, which will end with Started PaceApplicationKt [...] , if all went well.
Next up, you can start interacting with your PACE instance, by accessing the REST interface, gRPC interface or through the CLI. Here's an example listing the available Data Catalog integrations through the REST interface:
CLI
curl
pace list catalogs -o table
ID TYPE
COLLIBRA-testdrive COLLIBRA
datahub-on-dev DATAHUB
curl --silent http://localhost:9090/catalogs | jq
{
"catalogs": [
{
"id": "COLLIBRA-testdrive",
"type": "COLLIBRA",
"databases": [],
"tags": []
},
{
"id": "datahub-on-dev",
"type": "DATAHUB",
"databases": [],
"tags": []
}
]
}
Since we have not configured any catalogs, the result is not particularly interesting, though it confirms that your PACE instance is running correctly.
In order to put your PACE instance to good use, you'll need to add at least one Processing Platform. Optionally connect it to a Data Catalog, in order to use table definitions from the data catalog as a starting point for defining policies.