Skip to content

Commit b67ebbf

Browse files
skylightis666claude
andcommitted
Document Helm chart deployment, mark Compose snippets as examples
- New "Kubernetes (Helm)" section on getting-started, with tabs for standalone and alongside-Aidbox modes, pointing at the published HealthSamurai/helm-charts/mdmbox chart. - Intro line clarifies the Compose blocks are minimal examples for local trial runs, not production manifests. - Add commented MDMBOX_LICENSE hint to both compose examples so users know where to put the JWT. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 1dfa3f2 commit b67ebbf

3 files changed

Lines changed: 63 additions & 6 deletions

File tree

assets/examples/docker-compose.shared.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ services:
6565
ports:
6666
- "3000:3000"
6767
environment:
68+
# License — get a JWT from https://aidbox.app/ui/portal (select MDMbox product).
69+
# Leave unset to activate via browser on first visit to http://localhost:3000.
70+
# MDMBOX_LICENSE: "<paste JWT here>"
6871
# Same database as Aidbox
6972
BOX_DB_HOST: db
7073
BOX_DB_PORT: "5432"

assets/examples/docker-compose.standalone.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ services:
2121
ports:
2222
- "3000:3000"
2323
environment:
24+
# License — get a JWT from https://aidbox.app/ui/portal (select MDMbox product).
25+
# Leave unset to activate via browser on first visit to http://localhost:3000.
26+
# MDMBOX_LICENSE: "<paste JWT here>"
2427
# Database
2528
BOX_DB_HOST: db
2629
BOX_DB_PORT: "5432"

docs/getting-started.md

Lines changed: 57 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ MDMbox is distributed as a Docker image: `healthsamurai/mdmbox`.
88

99
It requires a PostgreSQL 14+ database. All configuration is done through environment variables.
1010

11+
The `docker-compose.yml` snippets below are minimal **examples for local trial runs** — clone, tweak, `docker compose up`. For Kubernetes, see [Kubernetes (Helm)](#kubernetes-helm).
12+
1113
## Standalone deployment
1214

1315
In standalone mode, MDMbox manages its own database. You need two containers: PostgreSQL and MDMbox.
@@ -40,6 +42,61 @@ docker-compose.yml
4042
The `BOX_*` environment variables must match your Aidbox configuration exactly. MDMbox and Aidbox share the same PostgreSQL instance, FHIR data, and engine settings.
4143
{% endhint %}
4244

45+
## Kubernetes (Helm)
46+
47+
For Kubernetes, MDMbox is published as a Helm chart: [HealthSamurai/helm-charts/mdmbox](https://github.com/HealthSamurai/helm-charts/tree/main/mdmbox). The chart does not provision PostgreSQL — bring your own (managed service, in-cluster operator, or [bitnami/postgresql](https://artifacthub.io/packages/helm/bitnami/postgresql)) — and supports the same two modes as the Compose examples above.
48+
49+
```bash
50+
helm repo add healthsamurai https://healthsamurai.github.io/helm-charts
51+
52+
helm upgrade --install mdmbox healthsamurai/mdmbox \
53+
--namespace mdmbox --create-namespace \
54+
--values values.yaml
55+
```
56+
57+
{% tabs %}
58+
{% tab title="Standalone" %}
59+
Put non-secret `BOX_DB_*` values in `config:` and reference a `Secret` you created with the credentials via `extraEnvFromSecrets`:
60+
61+
```yaml
62+
config:
63+
MDMBOX_LICENSE: <license JWT>
64+
BOX_DB_HOST: postgres
65+
BOX_DB_PORT: "5432"
66+
BOX_DB_DATABASE: mdmbox
67+
68+
extraEnvFromSecrets:
69+
- mdmbox-db # contains BOX_DB_USER, BOX_DB_PASSWORD
70+
```
71+
72+
{% endtab %}
73+
{% tab title="Alongside Aidbox" %}
74+
Reuse the `ConfigMap` and `Secret` your Aidbox already has — point the chart at them via `aidboxConfigMap` / `aidboxSecret`:
75+
76+
```yaml
77+
aidboxConfigMap: aidbox-config # BOX_DB_HOST, BOX_DB_PORT, BOX_DB_DATABASE...
78+
aidboxSecret: aidbox-secret # BOX_DB_USER, BOX_DB_PASSWORD...
79+
80+
config:
81+
MDMBOX_LICENSE: <license JWT>
82+
```
83+
84+
{% endtab %}
85+
{% endtabs %}
86+
87+
The full list of values is in the [chart README](https://github.com/HealthSamurai/helm-charts/blob/main/mdmbox/README.md).
88+
89+
## License
90+
91+
MDMbox requires a license to start. There are two ways to activate it:
92+
93+
1. **Environment variable.** Sign in to the [Aidbox portal](https://aidbox.app/ui/portal), open the MDMbox project, copy the license JWT, and pass it to the MDMbox container as `MDMBOX_LICENSE`. Recommended for production and CI.
94+
2. **Browser activation.** Leave `MDMBOX_LICENSE` unset and start MDMbox. Open `http://localhost:3000`, click **Continue with Aidbox account**, sign in to the portal — a development MDMbox license is generated and stored in the database automatically. Useful for local development.
95+
96+
| Variable | Description | Required |
97+
| --- | --- | --- |
98+
| `MDMBOX_LICENSE` | License JWT copied from the Aidbox portal | No — falls back to browser activation |
99+
43100
## Configuration reference
44101

45102
### Database
@@ -54,12 +111,6 @@ MDMbox uses the standard Aidbox database environment variables:
54111
| `BOX_DB_USER` | Database user | Yes |
55112
| `BOX_DB_PASSWORD` | Database password | Yes |
56113

57-
### FHIR engine
58-
59-
MDMbox includes an embedded FHIR engine that uses the standard Aidbox `BOX_*` environment variables. In shared mode, these must match your Aidbox configuration. See the docker-compose examples above for the full list.
60-
61-
Key settings: `BOX_BOOTSTRAP_FHIR_PACKAGES`, `BOX_FHIR_SEARCH_ENGINE`, `BOX_FHIR_COMPLIANT_MODE`, `BOX_SECURITY_DEV_MODE`, `BOX_ROOT_CLIENT_ID`, `BOX_ROOT_CLIENT_SECRET`.
62-
63114
### MDMbox connection pool
64115

65116
MDMbox maintains its own connection pool separate from the embedded FHIR engine. Both pools connect to the same database but are sized independently.

0 commit comments

Comments
 (0)