Skip to main content

Documentation Index

Fetch the complete documentation index at: https://ekso.dev/llms.txt

Use this file to discover all available pages before exploring further.

The Quickstart bundle is the fastest path to a running Ekso. One docker compose up -d brings up the API, the background worker, and a Postgres database with pgvector preinstalled. No external services to wire up. Pick this if you’re evaluating Ekso, running it for a small team, or don’t already operate a Postgres or SQL Server you want it to share. For shops with an existing database, see Bring your own database.

Prerequisites

  • Docker Engine 20+ on Linux, Docker Desktop on macOS or Windows
  • ~2 GB free disk for first-time image pulls
  • A free license — fetch one at ekso.app/get-started. The site emails you the personalized download link in the same step.

Install

  1. Download the bundle from the link in your welcome email (ekso-docker-stack.zip).
  2. Unzip somewhere persistent — for example ~/ekso/ or /srv/ekso/. The zip contains:
    docker-compose.yml
    ekso.json
    README.md
    
  3. Bring it up from the unzipped directory:
    docker compose up -d
    
    On first run, Compose pulls eksoapp/app and eksoapp/worker from Docker Hub, starts a postgres container with pgvector, and the API auto-applies the database schema. Allow 30–60 seconds for everything to settle.
  4. Open the install URL to land in the first-run wizard:
    http://localhost:6050/startup
    

What’s running

Three containers come up:
ServiceImageRole
appeksoapp/appREST API + UI on port 6050
workereksoapp/workerBackground jobs — email, ticketing, vector indexing
postgrespgvector/pgvector:pg18OLTP + reporting database with pgvector preinstalled
A Docker volume holds Postgres data so it survives container restarts. Attachments and uploads are stored under /var/ekso/storage — also volume-backed.
The bundle is multi-arch — same compose works on linux/amd64 and linux/arm64 (Apple Silicon, Graviton, etc.). Docker pulls the right variant automatically.

Pointing it at a real domain

For anything beyond local evaluation, run Ekso behind a reverse proxy that terminates TLS — Traefik, Caddy, nginx, your existing Cloudflare tunnel. Forward to app:6050 and use that proxy’s URL as the public URL during the first-run wizard. The ekso.json config file ships with a JWT signing key already pre-baked — you don’t need to edit it for a Quickstart install. See Configuration reference if you want to know what every field does or you need to override anything.

Updating

To pull the latest images:
docker compose pull
docker compose up -d
The API auto-applies any new schema migrations on startup. No manual database steps.

Tearing it down

docker compose down              # stop containers, keep data volumes
docker compose down --volumes    # stop and wipe everything (irreversible)
down --volumes deletes the Postgres data volume and the storage volume. There’s no undo — make sure you have a backup if the install holds anything you care about.