The DataMind Installer is a self-hosted control plane. It installs and manages a complete DataMind OS deployment on a server you own, and it runs on that same server. It is not an application that end users sign in to: it is the component a system administrator uses to put the platform on the machine and keep it there.
It ships as one container serving both the API and the browser UI, plus a PostgreSQL container for its own state.
The Installer does not contain the DataMind OS stack. It fetches that stack and then starts it on the host:
docker-compose.yml and its environment schema from Azure Blob Storage
into its deployment/ directory.unistream.azurecr.io), and writes the stack's .env from the configuration values it
holds.docker compose up -d against that compose file, through the host's Docker socket.| Piece | What it is | Where it runs |
|---|---|---|
| DataMind Installer API and UI | One container: NestJS API plus the served single-page app | backend service of the Installer's own compose project |
| Installer database | PostgreSQL 16, holding users, configuration values, jobs and the deployment audit trail | postgres service, pgdata volume |
| Installer database migrations | A one-shot container that runs TypeORM migrations and exits | backend-init service |
| DataMind OS stack | The product itself: its own compose project with its own containers, volumes and ports | Started by the Installer on the same host |
| Shared network | The external unistream Docker network, joined by both the Installer and the DataMind OS stack | Created once on the host, owned by neither compose project |
docker compose on the host./var/run/docker.sock; a rootless host points DOCKER_SOCK at the rootless socket
instead (for example /run/user/1000/docker.sock).Driving the Docker socket is equivalent to root on the server. An Installer sign-in can start and
stop the whole deployment, edit the deployment configuration, and run the host migration that
retires legacy systemd services with --privileged --pid=host. Treat Installer accounts the way you
treat sudo on the host. Who should have access
covers the access model.
All of the following is done from the Installer UI, on one host, against one deployment.
| Task | Where | What actually happens |
|---|---|---|
| Deploy the DataMind OS stack | Status screen, first run | Downloads the compose file and environment schema, pulls every image, then runs docker compose up -d |
| Watch the installation | Status screen | Live per-service pull progress in bytes and layers, then live compose output, then container health |
| Configure the deployment | Configuration screen | Edits grouped environment values and regenerates the stack's .env; secrets are masked for non-admins |
| Apply configuration changes | Configuration screen | Recreates only the affected services, in dependency order, waiting on each tier's health check |
| Start, stop, restart or kill services | Status screen | Runs docker compose up -d, stop, restart --no-deps or kill, targeted at the services or groups you choose |
| Check for and apply updates | Status screen | Compares each service image's local digest with the registry, then runs a full deploy |
| Observe | Status screen | Container health and uptime, per-service logs, full job logs, and the deployment audit trail of every action with its acting user |
| Manage users | Register User screen | Create accounts, disable them, change their role, delete them |
| Update the Installer itself | Status screen, version control | Pulls a newer Installer image and replaces its own container with a rollback path |
| Migrate a legacy host | Status screen, setup chooser | Runs the bare-metal retirement script inside the host's namespaces, then imports configuration from the legacy Jenkins config.xml |
System administrators who hold root or sudo on the server where DataMind OS will run, and who are
comfortable with Docker, Docker Compose and reading container logs.
You do not need Node.js, a package manager, or a build toolchain on the host: the Installer is delivered as container images and is driven from a browser. Node.js and pnpm are needed only if you build the Installer image yourself from its repository.
| Page | What it covers |
|---|---|
| Requirements | Host operating system, Docker and Compose versions, and the outbound network and registry access the Installer needs |
| Prepare the host | Creating the unistream network, the directories and volumes, the ports to free, and registry access |
| Install | Obtaining the compose files, preparing .env, the order of operations, and how to confirm success |
| First login | Where the UI is served, how the first administrator account is created, and session lifetimes |
| Post-install checklist | The checks to complete before you hand the deployment to its owners |