Cluster-wide management and observability for Apache ActiveMQ Artemis
10K+
One console for every Apache ActiveMQ Artemis cluster you run.
The bundled Hawtio console manages one broker at a time and has no idea a cluster exists. Artemis Studio is the other thing: one instance across many clusters — live/backup topology, cross-node queues and addresses in a single table, safe message operations, first-class request-reply tracing, and SQL over your messages.
It works against your existing brokers. No broker.xml rewrite beyond
enabling the management endpoints you almost certainly already run.
Extend it with plugins, installed from the UI: screens, API, assistant tools and
data of their own, most without a restart. When a plugin needs one, Studio restarts
itself if the container has a restart policy — the compose file sets
ARTEMIS_STUDIO_PLUGINS_RESTART_SUPERVISED=true beside restart: unless-stopped.
⚠️ Alpha. Under active development, not yet feature-complete. These images are pre-stable dev builds — the
:devtag is the moving pointer and there is no:latestyet. Expect breaking changes.
Documentation: sudoitir.github.io/artemis-studio · Source and issues: github.com/sudoitir/artemis-studio
Every image is signed by the project's release workflow and carries SLSA provenance and a CycloneDX SBOM: verify a release.
Studio and its Postgres. Your Artemis clusters already exist and are registered through the UI — nothing here starts a broker.
base=https://raw.githubusercontent.com/sudoitir/artemis-studio/main/deploy/compose
curl -sO "$base/compose.prod.yaml"
curl -s "$base/.env.example" | sed \
-e "s|^SECRET_KEY=.*|SECRET_KEY=$(openssl rand -base64 32)|" \
-e "s|^DB_PASSWORD=.*|DB_PASSWORD=$(openssl rand -hex 24)|" > .env
docker compose -f compose.prod.yaml --env-file .env up -d
The sed fills in a fresh secret key and database password; every other setting in
.env has a working default. The table below lists what the container reads.
Or a bare container against your own Postgres:
docker run -p 8080:8080 \
-e ARTEMIS_STUDIO_DB_URL=jdbc:postgresql://db:5432/artemis_studio \
-e ARTEMIS_STUDIO_DB_USER=artemis_studio \
-e ARTEMIS_STUDIO_DB_PASSWORD=... \
-e ARTEMIS_STUDIO_SECRET_KEY="$(openssl rand -base64 32)" \
sudoit1/artemis-studio:dev
| Variable | Required | Notes |
|---|---|---|
ARTEMIS_STUDIO_DB_URL | yes | jdbc:postgresql://host:5432/artemis_studio |
ARTEMIS_STUDIO_DB_USER / _DB_PASSWORD | yes | — |
ARTEMIS_STUDIO_SECRET_KEY | with the default env key provider | Protects every stored secret. Base64 of exactly 32 bytes or the app will not start (openssl rand -base64 32), or 1=<b64>,2=<b64> to hold several versions for key rotation. Other key providers (file, Vault, Kubernetes) and rotation: configuration guide |
ARTEMIS_STUDIO_CONFIG_ENCRYPT_KEY | no | Decrypts {cipher} values in studio_config_property. A different key from ARTEMIS_STUDIO_SECRET_KEY — do not reuse it |
JAVA_OPTS | no | Defaults to -XX:MaxRAMPercentage=50 |
First login. Username admin. The first run against an empty database
generates the password and prints it once to the container log:
docker compose -f compose.prod.yaml logs studio | grep -A4 'Created administrator'
You will be forced to set a new password on first login. Lose that first password before changing it and the only recovery is resetting the row directly in Postgres — there is no password-reset flow yet.
Reverse proxy. The live UI stream is SSE at GET /api/v1/stream; a proxy in
front of Studio must not buffer it (nginx proxy_buffering off;, Apache no
output buffering on that path; Traefik works as-is). Without this the topology
graph and queue grid only update on the 5-second poll.
| Tag | What it is |
|---|---|
:dev | the newest build; moves with every release |
:YYYY.MM | the newest build of that calendar month; moves within it |
:YYYY.MM.N | one exact release; immutable, never republished |
linux/amd64 and linux/arm64. Versioning is CalVer and the number carries no
compatibility promise — a release's breaking changes are listed at the top of its
release notes.
Apache-2.0.
"Apache", "ActiveMQ" and "Artemis" are trademarks of the Apache Software Foundation. This project is not affiliated with or endorsed by the ASF; the name is used to describe what the software works with.
Content type
Buildkit_cache
Digest
sha256:bcf6dd0eb…
Size
1.2 GB
Last updated
about 22 hours ago
docker pull sudoit1/artemis-studio:buildcache