Deploy the complete Prometheux platform on a single Linux machine — a physical server in your data centre or a VM on AWS, Azure, or GCP — using Docker Compose.
Overview
The single-VM deployment runs the full Prometheux platform on one machine using Docker Compose. It takes minutes to set up and is the easiest way to run Prometheux on infrastructure you control. All images are pulled from Prometheux’s private registry with a token we provide, so you always run signed, supported builds. Everything you need lives in the deployment repository:prometheuxresearch/prometheux-deploy
Docker Compose files, startup scripts, and configuration templates for the
on-premise single-VM deployment.
- Router (
router/) — a reverse proxy that routes each authenticated user to their dedicated tenant backend, with JWT validation, circuit-breaker, and health checks. - Tenant (
tenant/) — a full per-user stack: the backend, compute engine, language service, data manager, vector database, and notebooks. The folder is a template you copy once per user, so a single machine can host several isolated tenants.
The single-VM mode is ideal for a POC, a dedicated team workspace, or a small
production footprint. When you need elastic, multi-node scale with dedicated
compute per tenant, move to the
managed-Kubernetes or
physical-premises deployment —
the platform experience is identical.
What You Need
- A Linux machine (physical server or cloud VM) with Docker and Docker Compose installed. It runs on any distribution Docker supports — Ubuntu, Debian, Fedora, RHEL/CentOS, Rocky, AlmaLinux.
- Minimum recommended hardware: 4 vCPUs, 16 GB RAM, 50 GB disk. Size the disk generously (or attach a separate, resizable data volume) to account for your data growth over time.
- The credentials below, all provided by the Prometheux team:
Provisioning a cloud VM (optional)
Skip this if you’re deploying on a physical Linux server — the steps are identical once Docker is installed. On a cloud provider, provision a Linux VM (Ubuntu 22.04 LTS or later) first:
Set the root/boot disk to at least 50 GB, restrict the application ports to
your desired CIDR range, then connect over SSH and install Docker.
Setup
1
Clone the repository
2
Add your image pull token
Write the
PROMETHEUX_PULL_IMAGE_TOKEN into the token file in both
stacks — the startup scripts use it to log in to the registry before pulling.3
Configure the router
SECRET_KEY, SESSION_SECRET_KEY, and OAUTH_ISSUER in router/.env,
then map each username to their tenant’s backend in
router/config.yaml:4
Configure a tenant
The Set
tenant/ folder is a template — copy it once per user and configure
its .env:USERNAME, ORGANIZATION, CUSTOMER, JARVISPY_PORT (must match
router/config.yaml), JUPYTERLAB_PORT, and JUPYTERLAB_TOKEN in
alice/.env. Tune the compute engine via
alice/vadalog-parallel/pmtx.properties and spark-defaults.conf if needed.5
Start the router
router-on-premise, and starts it on
host port 8000.6
Start the tenant stack
Run the per-user copy you created (not the This creates the local state directories, pulls all images, and starts the
full tenant stack in detached mode.
tenant/ template). Repeat for
each user’s folder.What Gets Deployed
Router
Tenant (per user)
All services share a
shared/disk volume for seamless file exchange within a
tenant, and are set to restart: unless-stopped so they come back after a
reboot.
Management
./docker-compose-up.sh, and you’re current.
Persistent state & migration
All persistent state lives in plain host directories (not Docker volumes), which makes migration straightforward — especially if those paths live on a separate, resizable data volume (AWS EBS, Azure Managed Disk, or GCP Persistent Disk).
To move to another machine: stop the services, remount the data volume on the new
host, re-clone the repository, and restart. No image layers or database data need
to be re-imported.
Configuration
The compute engine’s configuration is mounted from the host at<tenant>/vadalog-parallel/pmtx.properties and spark-defaults.conf, making it
easy to adjust. For the full list of available properties, see the
Configuration Reference.
Next Steps
- REST API — Interact with the engine programmatically
- Python SDK — Use
prometheux_chainfrom notebooks or scripts - On (Cloud) Premises — Scale to managed Kubernetes on AWS, Azure, or GCP
- Physical Premises — Run on your own hardware / air-gapped network

