Customer Deployment
This guide covers how customers deploy Scaleout Edge on their own infrastructure — either on a server they already manage, or on a cloud provider (AWS or GCP) provisioned via Terraform.
In both cases the starting point is a release bundle: a self-contained archive of deployment scripts and a pre-built Docker Compose configuration, distributed through the Scaleout Harbor registry.
Prerequisites
A Harbor robot account (username and password) is required for both deployment paths. Your Scaleout representative will provide these credentials.
Compose deployment (on-premise)
Linux or macOS with Bash 4+ (on Windows use WSL2)
Docker Engine 24+ with the Compose plugin
Python 3.8+
Cloud deployment (Terraform)
Step 1: Install ORAS
Release bundles are stored as OCI artifacts on Harbor. You need the ORAS CLI to pull them.
Verify:
oras version
Step 2: Authenticate to Harbor
Log in with your Harbor robot account. Credentials are stored in ~/.docker/config.json and reused for subsequent commands.
oras login harbor.scaleoutsystems.com \
--username 'robot$<your-robot-account>' \
--password '<your-token>'
Step 3: Pull the release bundle
Pull the release bundle for your version. Replace vX.Y.Z with the version provided by your Scaleout representative.
oras pull harbor.scaleoutsystems.com/scaleout/scaleout:vX.Y.Z
This writes a scaleout-vX.Y.Z.tar.gz tarball to the current directory. Extract it:
tar -xzf scaleout-vX.Y.Z.tar.gz
cd scaleout-vX.Y.Z/
To list all available versions:
oras repo tags harbor.scaleoutsystems.com/scaleout/scaleout
Deployment Option A: Compose (on-premise or own server)
Use this path when you have a Linux server or VM that you manage directly.
Authenticate to the container registry
The compose deployment pulls pre-built images from Harbor. Log in with Docker using the same credentials:
docker login harbor.scaleoutsystems.com \
--username 'robot$<your-robot-account>' \
--password '<your-token>'
Generate runtime configuration
./deploy/setup.sh <hostname> [OPTIONS]
Replace <hostname> with the domain or IP address where Scaleout will be reachable (e.g. scaleout.mycompany.com or 192.168.1.100).
Common options:
Option |
Description |
|---|---|
|
Enable HTTPS (requires TLS certificates) |
|
Prevent new users from self-registering |
|
Enable Google OAuth |
|
Enable Microsoft OAuth |
Run ./deploy/setup.sh --help for the full option list.
Start services
./deploy/compose.sh up
The platform is accessible at http://<hostname> once all containers are healthy.
Upgrading
Download and extract the new release bundle alongside your existing deployment. The runtime/ directory (which holds secrets and generated config) is preserved between upgrades.
oras pull harbor.scaleoutsystems.com/scaleout/scaleout:vX.Y.Z
tar -xzf scaleout-vX.Y.Z.tar.gz
cd scaleout-vX.Y.Z/
./deploy/setup.sh <hostname>
./deploy/compose.sh up
Deployment Option B: Cloud (AWS or GCP via Terraform)
Use this path to provision a cloud VM automatically. The Terraform scripts are included in the release bundle under infrastructure/.
The VM bootstraps itself: Terraform creates the instance and passes a startup script that pulls the release bundle from Harbor and runs the deployment — no manual SSH required.
Configure your deployment
Copy the example variables file for your cloud provider and fill in your values:
Open terraform.tfvars and set at minimum:
domain = "scaleout.mycompany.com"
harbor_username = "robot$<your-robot-account>"
harbor_password = "<your-token>"
release_bundle_ref is pre-filled with the correct version. Replace the Harbor credential placeholders with the values provided by your Scaleout representative.
See terraform.tfvars.example for the full list of optional settings (OAuth providers, HTTPS, SSH access, system admin bootstrap).
Apply
terraform init
terraform apply
Terraform provisions the VM, waits for the startup script to complete, and prints the application URL when done.
Upgrading
To upgrade, update release_bundle_ref in terraform.tfvars to the new version and run:
terraform apply