Install with Docker
Install and run Bonita Process Designer with Docker Compose, including prerequisites, access URLs, test data seeding, common commands, and corporate proxy configuration.
Docker Compose is the recommended way to run Bonita Process Designer. A single command starts everything: the PostgreSQL database, the back-end API, and the front-end web server. You do not need to install a database, a runtime, or any other dependency on the host — everything runs in containers.
Prerequisites
-
Docker Desktop (or Docker Engine with the Docker Compose plugin) installed and running.
-
At least 4 GB of RAM available to Docker.
-
An internet connection, required for license validation and AI generation features.
|
PostgreSQL 16 is the only supported database engine. In Docker mode it runs automatically in a container — you do not provision it yourself. |
System requirements
Size the Docker host according to how many people use the application concurrently.
| Resource | Minimum | Recommended |
|---|---|---|
CPU |
2 vCPU |
4 vCPU |
Memory |
4 GB RAM |
8 GB RAM |
Disk |
10 GB |
20 GB |
The minimum is enough to evaluate the product on a single host. Use the recommended sizing for a shared installation that several people use at the same time.
Start the application
From the directory that contains the docker-compose.yml file, run:
docker compose up -d
This single command:
-
Starts a PostgreSQL container.
-
Builds and starts the back-end API. Database migrations run automatically at start-up — there is no manual migration step.
-
Builds and starts the front-end web server.
-
Seeds initial test data (users, labels, and sample diagrams) via the
seedservice.
The first start can take a few minutes while images are built. Check progress with docker compose logs -f.
Access the application
Once the containers are running, open your browser at:
| Service | URL |
|---|---|
Front-end (the editor) |
|
Back-end API |
Replace <server-address> with localhost for a local install, or with the IP address or hostname of the server where the application runs.
On first login, use the default admin / admin account; you are prompted to change the password immediately. For the full initial setup flow (license, registration, AI configuration), see First-time setup.
Seed test data
The default docker compose up -d already seeds a small set of sample data so you can explore the product right away. To re-seed at any time (for example after resetting the database), run the seed service on its own:
docker compose run --rm seed
Seeding is idempotent: if the sample accounts already exist, the seed step is skipped, so it is safe to run more than once.
Common commands
# Start all services in the background
docker compose up -d
# Stop all services (keeps your data)
docker compose down
# View logs from all services, or a single one
docker compose logs -f
docker compose logs -f backend
# Restart services
docker compose restart
# Check service status
docker compose ps
# Stop and remove all services AND data (including the database)
docker compose down -v
|
|
Always back up the database before an update. Because all data lives in the PostgreSQL container, a SQL dump taken while the application keeps running is the simplest backup.
Back up and restore the database
Take a backup with pg_dump against the running PostgreSQL container. The postgres service hosts the bpmnDB database:
docker compose exec postgres pg_dump -U postgres bpmnDB > backup.sql
To restore, pipe the dump back into psql against a running (and empty) bpmnDB:
docker compose exec -T postgres psql -U postgres bpmnDB < backup.sql
|
If you run PostgreSQL with the standalone Docker container name rather than Compose, replace |
Configure an HTTP(S) proxy
If you deploy in a corporate network without direct internet access, configure the back-end to route its outbound calls (license validation, AI generation) through your HTTP proxy. Set the proxy environment variables before starting the containers.
Proxy without authentication
HTTP_PROXY=http://proxy.company.com:8080 \
HTTPS_PROXY=http://proxy.company.com:8080 \
NO_PROXY=localhost,127.0.0.1,postgres \
docker compose up -d
Authenticated proxy
Pass the credentials in the proxy URL:
HTTP_PROXY=http://username:password@proxy.company.com:8080 \
HTTPS_PROXY=http://username:password@proxy.company.com:8080 \
NO_PROXY=localhost,127.0.0.1,postgres \
docker compose up -d
Keep credentials out of version control
For an authenticated proxy, prefer a .env file (add it to .gitignore) rather than the command line:
# .env
HTTP_PROXY=http://username:password@proxy.company.com:8080
HTTPS_PROXY=http://username:password@proxy.company.com:8080
NO_PROXY=localhost,127.0.0.1,postgres
Docker Compose reads the .env file automatically when the variables are referenced in the service environment:
environment:
- HTTP_PROXY
- HTTPS_PROXY
- NO_PROXY
|
Always include |
Next steps
-
First-time setup — log in, activate the license, register the installation, and enable AI generation.
-
Configuration reference — environment variables for ports, CORS, TLS, and AI configuration.
-
Installation — compare deployment modes and choose another option if Docker is not available.