Skip to content

Deployment

Firefly can move gradually from local memory/H2 testing to PostgreSQL-backed single-node deployment and then to split api, gateway, and scheduler roles.

Local Development

powershell
.\gradlew.bat :server:launcher:run --args="--firefly.config.profile=h2"
ServiceDefault address
Admin UIhttp://127.0.0.1:9720
Admin HTTP APIhttp://127.0.0.1:9710
Prometheus Metricshttp://127.0.0.1:9711/metrics
Netty Gateway127.0.0.1:9700

Docker Compose

powershell
docker compose up -d --build

Node Roles

Standalone can enable all roles in one process:

properties
firefly.node.roles=api,gateway,scheduler

Cluster deployments can split roles:

properties
firefly.node.roles=api
firefly.node.roles=gateway
firefly.node.roles=scheduler

Storage

ProfileUse case
memoryQuick experiments and tests
h2Local file persistence
pgLocal PostgreSQL default

Production deployments should use PostgreSQL or MySQL and align firefly.jdbc.schema.mode with the team's migration process.

PostgreSQL Database Initialization

With initialize-if-empty, Firefly initializes an empty database on first startup. No manual SQL download or execution is required:

properties
firefly.jdbc.schema.mode=initialize-if-empty

When a DBA or external migration system owns the production schema, download the minimal initialization script for the deployed version:

Download the minimal PostgreSQL initialization script (v1.0.1)

SHA-256:

text
d6cc52ad804245b202b1da127730448211c22513c524be4d46f2744667bd7d24

The script creates only Firefly-managed tables, indexes, schema metadata, and the bootstrap administrator. Database creation, roles, and grants remain operator-owned. Prepare the database and account first, then run:

powershell
psql -h 127.0.0.1 -U firefly -d firefly -f .\firefly-postgresql-init-v1.0.1.sql

After applying the script, set firefly.jdbc.schema.mode to validate. The default administrator is admin/admin and must change its password on first login.

Released under the Apache-2.0 License.