Install from the Docker image (download from S3)¶
The container alternative to the bare-metal install: download one self-contained ELTMaestro image from the public release bucket, load it into Docker, and run it. Everything — PostgreSQL, the engine, the SOAP meta-service, Spark/Hadoop, and Marquez — runs inside the single container.
Prerequisites¶
- A host with Docker installed and running (Linux recommended).
- ~6 GB free disk for the image, plus room for the data volumes.
- Outbound HTTPS to download the image (or copy the tarball in for an air-gapped host).
Step 1 - download and load the image¶
Releases are published to https://eltmaestro.s3.amazonaws.com/docker/. Download the image tarball for the version you want and load it into Docker:
curl -fLO https://eltmaestro.s3.amazonaws.com/docker/eltmaestro-<VERSION>.tar.gz
docker load -i eltmaestro-<VERSION>.tar.gz
docker images eltmaestro
docker load registers eltmaestro:<VERSION> locally. The current image is eltmaestro-17.0.4.tar.gz; see Downloads for the exact URLs (the bucket isn't directory-browsable).
Step 2 - run the container¶
docker run -d --name eltmaestro --restart unless-stopped \
-p 8181:8181 \
-p 5432:5432 \
-p 10000:10000 \
-p 9080:8080 \
-p 7077:7077 \
-p 3443:3443 \
-p 3080:3080 \
-v eltm-pgdata:/opt/iserver/server/pgsql/data \
-v eltm-hdfs:/root/hdmaestro \
-v eltm-data:/opt/iserver/data \
eltmaestro:<VERSION>
What the ports are for (only 8181 is required — the rest are optional, by feature):
| Port | Service |
|---|---|
| 8181 | SOAP meta-service over HTTPS — the desktop client connects here |
| 5432 | PostgreSQL audit DB |
| 10000 | Spark Thrift / HiveServer2 |
| 9080 | Spark master UI (container 8080) |
| 7077 | Spark master RPC |
| 3443 / 3080 | audit-analytics web (HTTPS / HTTP) |
Two things to know:
- TLS works out of the box. The image bakes a self-signed keystore and starts the meta-service on HTTPS (
SSL_ENABLED=trueby default) — no keystore mount needed, and the desktop client accepts the self-signed cert automatically. To override:-e SSL_ENABLED=falsefor plain HTTP, or-e KEYSTORE_PATH=… -e KEYSTORE_PASSWORD=…for your own certificate. - The three named volumes hold all durable state — the audit DB, the HDFS warehouse, and deployed workflows + logs. Keep the same volume names across upgrades and your data persists. Use the exact container paths shown (PostgreSQL lives at
/opt/iserver/server/pgsql/data, not the usual/var/lib/postgresql/data).
Step 3 - wait for startup and verify¶
First start initializes the database (a minute or two). Watch for readiness, then confirm the services and the SOAP endpoint:
docker logs -f eltmaestro # wait for "Audit database ready"
docker exec eltmaestro supervisorctl status # services should be RUNNING
curl -sk https://<server_ip>:8181/MaestroMetaDataProviderService/MaestroMetaService?wsdl | head -2
The WSDL request should return its XML header (HTTP 200).
Step 4 - default credentials¶
A bootstrap user is seeded on first start:
- User:
integrator - Password:
integrator123
Change it before connecting any real client:
Step 5 - connect the desktop client¶
Point the ELTMaestro desktop client's Server / Port at <server_ip> / 8181 and sign in as integrator with your new password. From here the User Guide covers connections, workflows, and the rest.
Upgrading¶
Download the new image tarball, load it, then recreate the container with the same volume names — your data carries over and pending migrations apply automatically on start:
curl -fLO https://eltmaestro.s3.amazonaws.com/docker/eltmaestro-<NEW_VERSION>.tar.gz
docker load -i eltmaestro-<NEW_VERSION>.tar.gz
docker stop eltmaestro && docker rm eltmaestro
docker run -d --name eltmaestro --restart unless-stopped \
-p 8181:8181 -p 5432:5432 -p 10000:10000 -p 9080:8080 -p 7077:7077 -p 3443:3443 -p 3080:3080 \
-v eltm-pgdata:/opt/iserver/server/pgsql/data \
-v eltm-hdfs:/root/hdmaestro \
-v eltm-data:/opt/iserver/data \
eltmaestro:<NEW_VERSION>
See OPERATIONS.md for day-to-day start/stop, logs, and admin tasks.