Skip to main content
Platinur is distributed as a packaged installer: versioned Docker images pulled from an image registry, plus a small tarball containing the platinur CLI and Compose files. No source checkout is needed — product code comes from the images, and everything customer-specific lives in one state directory on the host.

Prerequisites

  • A Docker-capable host with Docker and the Compose plugin (docker compose version must work).
  • Outbound access to the image registry (ghcr.io by default) and to Docker Hub.
  • Registry pull credentials issued with your license (a read-only user and token).
  • The host can reach the source systems configured in Integrations, GitHub for repository sync and promotion, and OpenAI Platform when Assistant or Initial Run is used.

Get the installer

You receive a tarball named platinur-install-<version>.tar.gz. Unpack it and work from the unpacked directory:
tar -xzf platinur-install-<version>.tar.gz
cd platinur-install-<version>
It contains four files: the platinur CLI, env.example, and two Compose profiles (docker-compose.client.yml for the bundled-ClickHouse default, docker-compose.external-ch.yml for external ClickHouse).

Configure .env

Copy env.example to .env and fill in the non-generated values. Every setting is documented inline in env.example.
cp env.example .env
chmod 600 .env
At minimum, set:
  • PLATINUR_REGISTRY_USER and PLATINUR_REGISTRY_TOKEN — the registry pull credentials issued with your license.
  • PLATINUR_HOME — where customer state lives on the host (config, metadata DB, generated models, dashboards). Default /opt/platinur/state. Back this directory up.
  • PLATINUR_ADMIN_EMAIL — the bootstrap admin login. Default admin@platinur.local.
Leave PLATINUR_SECRET_KEY, PLATINUR_ADMIN_PASSWORD, and CLICKHOUSE_PASSWORD empty — install generates them.

Install

./platinur install <version>
For example: ./platinur install 1.0.0-rc1. The version pins which images the deployment runs and is written to .env as PLATINUR_VERSION. Install does the following, in order:
  1. Verifies Docker and the Compose plugin are available, and creates .env from env.example if it does not exist yet.
  2. Generates any missing secrets: PLATINUR_SECRET_KEY (encrypts stored credentials), PLATINUR_ADMIN_PASSWORD, and — in the bundled profile — CLICKHOUSE_PASSWORD. Secret generation runs a short-lived python:3.11-slim container, which is why Docker Hub access is required.
  3. Logs in to the image registry with PLATINUR_REGISTRY_USER / PLATINUR_REGISTRY_TOKEN.
  4. Creates PLATINUR_HOME, pulls the versioned images, and starts the stack.
  5. Waits up to three minutes for the portal to respond, then prints the portal URL, the admin login, and the state directory.
The generated admin password is stored in .env as PLATINUR_ADMIN_PASSWORD. Log in to the portal at http://localhost:8080 (or the PLATINUR_PORTAL_PORT you configured) with PLATINUR_ADMIN_EMAIL and that password. The installed version is shown in the portal sidebar. Only the portal is reachable from outside the Docker network; ClickHouse, the worker, Prefect, and Evidence are internal.

Verify with doctor

./platinur doctor
Doctor lists the containers, then runs four health checks and exits non-zero if any fail:
  • Portal — the control plane answers on its login page.
  • Worker — the worker’s health endpoint responds.
  • ClickHouse — the bundled server answers a query, or, with EXTERNAL_CLICKHOUSE=true, the worker runs a query against your warehouse (a failure here points at CLICKHOUSE_HOST/CLICKHOUSE_PASSWORD or network/TLS).
  • Prefect — the Prefect API health endpoint responds.
For triage, tail and follow a failing service’s logs:
./platinur logs <service>
Service names are control-plane, worker, prefect, prefect-runner, evidence, and (bundled profile only) clickhouse. The CLI also provides ./platinur status, stop, start, and down, and ./platinur upgrade <version> pulls a new release and restarts — database migrations run automatically at startup.

Deployment options

Bundled ClickHouse (default). The Compose stack runs a ClickHouse server alongside Platinur with a generated password, and warehouse data lives in a Docker volume on the host. No extra setup. External ClickHouse. For large-data deployments, set EXTERNAL_CLICKHOUSE=true in .env and point Platinur at your own ClickHouse cluster or ClickHouse Cloud via CLICKHOUSE_HOST, CLICKHOUSE_PASSWORD, CLICKHOUSE_USER, the port settings, and CLICKHOUSE_SECURE for TLS. No ClickHouse container runs locally in this mode; the CLI selects the external-ClickHouse Compose profile automatically, and install refuses to proceed until CLICKHOUSE_HOST and CLICKHOUSE_PASSWORD are set. The ClickHouse user needs CREATE DATABASE plus full rights on Platinur’s output schemas. See External ClickHouse Schemas for how Platinur works with warehouse data it did not load. Managed hosting. Platinur can operate the deployment for you at <client>.platinur.com. It is the same packaged artifact, run by Platinur behind a TLS proxy with hardened session cookies and failed-login throttling — there is nothing to install, and everything else in these docs applies unchanged.