Bold BI can be deployed using Docker containers to simplify setup, enhance scalability, and streamline maintenance. A multi-container Docker setup enables you to run Bold BI in isolated containers that work together seamlessly.
Create an empty project directory.
You can name the directory something easy for you to remember. This directory is the context for your application image. This project directory should contains a docker-compose.yml
file which is complete in itself for a good starter BoldBI project.
Make and change into your project directory.
For example, if you named your directory my_boldbi
cd my_boldbi/
Download the docker-compose YML file and configuration file for Nginx files by running the below commands.
curl -o docker-compose.yml "https://raw.githubusercontent.com/boldbi/boldbi-docker/refs/heads/main/deploy/multiple-container/docker-compose.yml"
curl -o default.conf "https://raw.githubusercontent.com/boldbi/boldbi-docker/refs/heads/main/deploy/multiple-container/default.conf"
Replace <app_base_url>
with your DNS or IP address, by which you want to access the application.
For example,
http://example.com
https://example.com
http://<public_ip_address>
http://host.docker.internal
Note:
* If you are using the IP address for the Base URL, make sure you are using the public IP of the machine instead of internal IP or local IP address. Applications can communicate with each other using the public IP alone. Host machine IP will not be accessible inside the application container.
* Use http://host.docker.internal instead of http://localhost. Host machine localhost DNS will not be accessible inside the container. So, docker desktop provideshost.docker.internal
andgateway.docker.internal
DNS for communication between docker applications and host machine. Please make sure that the host.docker.internal DNS has your IPv4 address mapped in your hosts file on Windows(C:\Windows\System32\drivers\etc\hosts) or Linux (/etc/hosts).
* Provide the HTTP or HTTPS scheme for APP_BASE_URL value.
You can also change the Port number other than 8085
Provide the default.conf file path, which you have downloaded earlier in <default_conf_path>
place.
For example:
Windows: "D:/boldbi/docker/default.conf":"/etc/nginx/conf.d/default.conf"
Linux: "/var/boldbi/docker/default.conf:/etc/nginx/conf.d/default.conf"
Allocate a directory in your host machine to store the shared folders for applications usage. Replace the directory path with <host_path_boldservices_data>
and <host_path_db_data>
in docker-compose.yml file.
For example,
Windows: device: 'D:/boldbi/boldservices_data'
and device: 'D:/boldbi/db_data'
Linux: device: '/var/boldbi/boldservices_data'
and device: '/var/boldbi/db_data'
Note: The docker volumes
boldservices_data
anddb_data
persists data of Bold BI and PostgreSQL respectively. Learn more about docker volumes
Now, run docker-compose up -d
from your project directory.
This runs docker-compose up
in detached mode, pulls the needed Docker images, and starts the boldbi and database containers, as shown in the example below.
Note: To use the PostgreSQL server deployed with Bold BI using the
docker-compose.yaml
file, please usepgdb
as the host name of the PostgreSQL server.
At this point, BoldBI should be running in <app_base_url>:8085
(as appropriate)
Note: The BoldBI site is not immediately available on port 8085 because the containers are still being initialized and may take a couple of minutes before the first load.
Configure the Bold BI On-Premise application startup to use the application. Please refer the following link for more details on configuring the application startup.
https://help.boldbi.com/embedded-bi/application-startup
The command docker-compose down removes the containers and default network, but preserves the volumes of Bold BI and PostgreSQL.
The command docker-compose down —volumes removes the containers, default network, and all the volumes.