Skip to content

Installation

The release ships as a single .tar.gz bundle containing the docker image, install + lifecycle scripts, and a README. Works with docker or podman out of the box.

Requirements

OS Linux x86_64
Runtime docker ≥ 20.10 or podman ≥ 4.0
Disk ~1 GB free for the image; data dir grows with usage (the synthmas demo data is ~ 500 MB)
Port 8000 free (override via ORCHESTRATOR_LISTEN_PORT)

Install

tar xzf etl-orchestrator-X.Y.Z.tar.gz
cd etl-orchestrator-X.Y.Z
./bin/install-etl-orchestrator.sh

When it finishes you'll see a block with the URL and an initial admin password (random, generated once on first boot — copy it before clearing your terminal):

═══════════════════════════════════════════════════════════════════
  ETL-Orchestrator 0.7.0 is running.
═══════════════════════════════════════════════════════════════════
  URL:        http://your-host:8000/
  Local URL:  http://localhost:8000/

  Initial admin login:
    username: admin
    password: <random>
  (You'll be asked to change it on first sign-in.)
═══════════════════════════════════════════════════════════════════

Open the URL, sign in as admin with the printed password, and you'll be forced through a password change before reaching the app.

Final install step: upload the license

The orchestrator boots and lets you sign in without a license, but it can't actually run a pipeline without one — every engine spawn needs a valid license file. So before you do anything else:

  1. Make sure you have a license.lic file (request a trial at https://rook-it.com/licenses).
  2. Settings → License → Upload → pick your .lic file.
  3. The page now shows the licensed-to name + expiry.

That's the install done. You're now free to import / build pipelines, create environments, and run.

Customising port / data dir / container name

All three are env-var overrides on the installer:

ORCHESTRATOR_LISTEN_PORT=9000 \
ORCHESTRATOR_DATA_DIR=/srv/etlo \
ORCHESTRATOR_CONTAINER_NAME=etlo-staging \
    ./bin/install-etl-orchestrator.sh

The installer persists your chosen values to bin/etlo.config so the lifecycle script (run-etl-orchestrator.sh) finds the right container without you re-passing env vars.

Upgrading

Just re-run ./bin/install-etl-orchestrator.sh with the newer tarball. The script removes the old container, loads the new image, restarts. Your data dir is untouched, so pipelines / envs / run history all carry over.

If the new release includes a schema change, the entrypoint's bootstrap step applies the alembic migration on first start automatically.

Lifecycle

After install, manage the container with:

./bin/run-etl-orchestrator.sh status      # container + /healthz
./bin/run-etl-orchestrator.sh logs        # follow logs
./bin/run-etl-orchestrator.sh stop        # data preserved
./bin/run-etl-orchestrator.sh start
./bin/run-etl-orchestrator.sh restart
./bin/run-etl-orchestrator.sh uninstall   # remove container; data + image kept

What the installer does, in order

  1. Detects docker or podman. Hard error if neither is installed; clear error if the daemon isn't reachable from the current user (you need to be in the docker/podman group, or root).
  2. $tool load -i data/etl-orchestrator.docker then re-tags as :latest in the same repo namespace the image landed in.
  3. Creates the data directory (defaults to /var/lib/orchestrator).
  4. Probes the host for a container socket (/var/run/docker.sock, /run/podman/podman.sock, $XDG_RUNTIME_DIR/podman/podman.sock) and bind-mounts the first hit to /var/run/docker.sock inside the container. The orchestrator uses it to spawn engine containers for each pipeline step.
  5. Removes any existing container of the same name (the upgrade path).
  6. $tool run -d --restart unless-stopped with port + volume + socket mounts; environment vars stripped to the essentials.
  7. Waits for /healthz (up to 60 s) so failures surface immediately.
  8. Greps the bootstrap log for the initial admin password and prints URL + password in the block above.
  9. Writes bin/etlo.config with the chosen settings so the lifecycle script auto-loads them.

Uninstalling completely

./bin/run-etl-orchestrator.sh uninstall                # removes container
docker rmi rook-it.com/etl-orchestrator:latest         # frees ~ 300 MB
rm -rf /var/lib/orchestrator                            # DESTROYS ALL STATE