Instance bootstrap
Download the signed bundle from the client portal and run install.sh before accessing internal docs.
Before you can open Control Tower → Documentation (/docs), you must install the
Portlane core bundle on your Linux server. Internal runbooks are served only from a
running instance.
1. Client portal
- Sign in at app.portlane.tech
- Open Licence — review your plan (seats, features, validity) and download your organization's license file
- Open Téléchargements
- Download the Portlane Engine core bundle (
portlane-core-*.zip) - Click Obtenir le token GHCR — copy username and token for Docker login
Download is self-service once your organization has been activated commercially. If you do not see an active license, contact Bastion Lab.
The zip is stored in a private Supabase bucket; the portal generates a 15-minute signed URL.
2. Verify and configure
On the target VM (Ubuntu 24.04 LTS recommended, 8 GB+ RAM):
unzip portlane-core-V.zip && cd portlane-core-V
sha256sum -c checksums.sha256
# Place the license file you downloaded from the portal in this directory before install
cp deploy/.env.example deploy/.env
cp deploy/publish.env.example deploy/publish.env
# Edit deploy/.env (passwords) and deploy/publish.env (target URLs for your flows)3. Authenticate and install
echo "$GHCR_TOKEN" | docker login ghcr.io -u "$GHCR_USER" --password-stdin
./install.shOffline / air-gapped: the bundle may include deploy/images.tar — use ./install.sh --offline.
install.sh installs Docker if needed, pulls pinned images, starts six engines + docs, and
initializes the embedded portlane-pipelines/ git repo.
All engine images come from a private GHCR registry, signed and pinned to exact versions in the bundle: your instance runs exactly what was released, and a registry tag changing later never silently updates a server. Day-to-day flow deployments follow the same pull model — see Developer setup.
4. First access
| Surface | URL (loopback) |
|---|---|
| Control Tower | http://127.0.0.1:8001/admin |
| Internal docs | http://127.0.0.1:8001/docs |
| Webhook listener | http://127.0.0.1:8000 |
Use the viewer credentials from deploy/.env for Basic auth.
5. Connect your pipelines repo
The bundle includes a starter portlane-pipelines/ folder. Point it to your Git remote:
git -C portlane-pipelines remote add origin <your-github-url>
git push -u origin main
git -C portlane-pipelines checkout -b dev && git push -u origin devSee Developer setup for the dev/prod CI model.
Automation (ops)
Headless equivalent of the portal download (requires Supabase service role):
export SUPABASE_URL=... SUPABASE_SECRET_KEY=...
./deploy/scripts/fetch-client-bundle.sh --version 0.0.0-test --output /opt
./deploy/scripts/bootstrap-instance.sh --bundle-dir /opt/portlane-core-0.0.0-testFull sandbox runbook lives in on-prem docs after install: Bootstrap instance dev.