Skip to end of metadata
Go to start of metadata

This article is provided as a technical guide to set up Joget DX on PostgreSQL on Kubernetes. Please note that Postgres database is not officially supported by Joget. The following steps were implemented on Ubuntu 20.04, please modify the commands to suit your environment.

Create Joget Image with PostgreSQL JDBC Driver

# create custom Dockerfile
cat <<EOF > joget-dx7-postgresql-tomcat9.Dockerfile
FROM jogetworkflow/joget-dx7-tomcat9:7.0.14

# Copy postgresql jdbc driver (download from
COPY postgresql-42.2.19.jar /deployments/apache-tomcat/lib/postgresql-42.2.19.jar

# build docker image
docker build -f joget-dx7-postgresql-tomcat9.Dockerfile --rm -t .

# push docker image
docker push

Deploy PostgreSQL on K8s using Helm

# deploy postgresql helm repo add bitnami
helm install postgres bitnami/postgresql
helm list
helm get notes postgres

# wait for postgresql to startup
kubectl wait \
  --for=condition=ready pod \ \

Create PostgreSQL Database

# set postgresql password
export POSTGRES_PASSWORD=$(kubectl get secret --namespace default postgres-postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode)

# run psql
kubectl run postgres-postgresql-client --rm --tty -i --restart='Never' --namespace default --image --env="PGPASSWORD=$POSTGRES_PASSWORD" --command -- psql --host postgres-postgresql -U postgres -d postgres -p 5432

$ \quit

Import Joget DB SQL

Obtain the pgsql file from Configure for PostgreSQL.

# import sql
cat jwdb-postgresql-dx7.pgsql | kubectl exec -i postgres-postgresql-0 -- env PGPASSWORD=$POSTGRES_PASSWORD psql -U postgres -d jwdb

Deploy Joget

Follow the instructions in, replacing the jogetworkflow/joget-dx7-tomcat9 image with the custom image in the YAML

Configure Joget Datasource for PostgreSQL

# ssh into tomcat pod and create datasource files
kubectl exec --stdin --tty deployments/joget-dx7-tomcat9 -- /bin/bash

$ cat <<EOF > /opt/joget/wflow/

$ cat <<EOF > /opt/joget/wflow/

$ exit

Restart Joget

# restart pods

kubectl scale --replicas=0 deployment/joget-dx7-tomcat9

kubectl scale --replicas=1 deployment/joget-dx7-tomcat9

# view logs

kubectl logs -f deployment/joget-dx7-tomcat9
  • No labels