How to Use External PostgreSQL as Backend DB in Docker Deployment

Hello Team,

We are using Open Source BI Helical Insight 6.1 via Docker deployment. By default, it uses the internal PostgreSQL container.

However, we want to use an external PostgreSQL database as the backend repository instead.

How can we configure Helical Insight Docker setup to connect to an external PostgreSQL database?

Thanks,
Vema.

Hello,

Yes, it is possible to configure Helical Insight Docker setup to use an external PostgreSQL database instead of the default containerized one.

Below are the steps to achieve this:

1. Update docker-compose.yml

In this setup:

  • The internal PostgreSQL container will be used only for scheduler DB (hischeduledata)
  • The main repository DB (hiee ) will point to your external PostgreSQL

Keep the postgres service as is, but no changes are needed for external DB here.

2. Update application-context.xml

Path:

<HI_HOME>/hi/hi-ee/WEB-INF/classes/application-context.xml

### Find existing datasource config:

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<property name="username" value="hiuser"/>
<property name="password" value="hiuser"/>
<property name="driverClassName" value="org.postgresql.Driver"/>
<property name="jdbcUrl" value="jdbc:postgresql://postgres:5432/hiee"/>
<property name="connectionTimeout" value="180000"/>
</bean>

### Update to external DB:

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<property name="username" value="DBUSERNAME"/>
<property name="password" value="DBPASSWORD"/>
<property name="driverClassName" value="org.postgresql.Driver"/>
<property name="jdbcUrl" value="jdbc:postgresql://YOURHOST:5432/hiee"/>
<property name="connectionTimeout" value="180000"/>
</bean>

3. Update persistence.xml

Path:

<HI_HOME>/hi/hi-ee/WEB-INF/classes/META-INF/persistence.xml

### Existing config:

<property name="jakarta.persistence.jdbc.driver" value="org.postgresql.Driver" />
<property name="jakarta.persistence.jdbc.url" value="jdbc:postgresql://postgres:5432/hiee"/>
<property name="jakarta.persistence.jdbc.user" value="hiuser" />
<property name="jakarta.persistence.jdbc.password" value="hiuser" />

### Update to external DB:

<property name="jakarta.persistence.jdbc.driver" value="org.postgresql.Driver" />
<property name="jakarta.persistence.jdbc.url" value="jdbc:postgresql://YOURHOST:5432/hiee"/>
<property name="jakarta.persistence.jdbc.user" value="DBUSERNAME" />
<property name="jakarta.persistence.jdbc.password" value="DBPASSWORD" />

Important Notes

  • Ensure the hiee database is already created on your external PostgreSQL server
  • Replace:
    • YOURHOST → your DB server IP/hostname
    • DBUSERNAME / DBPASSWORD → actual credentials
  • Make sure Docker container can access external DB (network/firewall open)

4. Start Containers

docker-compose up –d

Thank You,
Helical Insight.