Skip to content

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=true by default) — no keystore mount needed, and the desktop client accepts the self-signed cert automatically. To override: -e SSL_ENABLED=false for 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:

docker exec eltmaestro mset-password-md5 INTEGRATOR '<new-password>'

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.