How to set up?

Depending on your needs, of the following installation options can be suitable:

Setting up for evaluation/demo purposes

The following Docker Compose-based setup is intended for demo and evaluation purposes only and is not recommended for production use due to security and performance concerns. For the sake of installation simplicity, this setup contains a hard-coded JWT secret key, which is not secure. For enterprise grade setup, consider Kubernetes-based deployment of the provided containers (see Helm Chart), production compose setup, or other option available in your organization.
For RHEL with SELinux enabled runtime only

Allow the 389 (ldap) and 80 (frontend http) ports for usage in SELinux subsystem

sudo semanage port -a -t http_port_t -p tcp 80
sudo echo "net.ipv4.ip_unprivileged_port_start=80" >> /etc/sysctl.conf
sudo sysctl -p

In order to run the Governor locally, you need to

  1. Install Docker.

  2. Download and unzip governor-compose.zip. This file contains Docker Compose script as well as dumps of demo databases.

  3. Run the following commands in the unzipped directory:

docker compose pull
docker compose up

The UI will be available at http://localhost:80. Use the predefined username and password to log in for the first time: test@synthesized.io / Qq12345_.

Please note that connection details for demo source and target databases provided in the user interface (host transformed_db, port 5432) are valid for internal Docker Compose network. In order to access these databases from the host machine, you should use localhost as a hostname and port 5433.

(Optional) Setting up a volume for Governor Postgres DB

Governor uses a PostgreSQL database to store its configuration and state. By default, the data is stored inside the Docker container, which means it will be lost if the container is removed. To enable data persistence, you can mount a folder from your local filesystem as a volume:

  • uncomment the line: <Governor DB host directory path>:/var/lib/postgresql/data"

  • Replace <Governor DB host directory path> with an absolute path on your machine where you’d like to store the database files.

This ensures that database data will be persisted between restarts of the container or Docker daemon. Optionally, you can do the same for transformed database by replacing <transformed DB host directory path>.

(Optional) Setting up a volume for RocksDB

Synthesized TDK embedded into Governor relies on RocksDB embedded key-value store to speed up its performance. However, having RocksDB folder inside the container can lead to problems both with performance and space restrictions. In order to set up a volume on your local filesystem:

  • uncomment volumes section in docker-compose.yml

  • uncomment - <RocksDB host directory path>:/app/rocksdb line and substitute your path to RocksDB folder.

  • make sure this folder is accessible for Docker using chmod 777<RocksDB host directory path> command.

(Optional) Setting up a volume for log files

If you are willing to store Governor log files locally instead having them in the container, do the following:

  • uncomment volumes section in docker-compose.yml

  • uncomment - <logs host directory path>:/app/logs line and substitute your path to logs folder.

  • make sure this folder is accessible for Docker using chmod 777 <logs host directory path> command.

You must use separate folders on the host machine for each of the following paths: <Governor DB host directory path>, <transformed DB host directory path>, <RocksDB host directory path>, <logs host directory path>.