Skip to content
Beta — Truss is in public beta. Documentation is actively updated but may not reflect the latest changes. Report issues on GitHub.

Quickstart

Truss is self-hosted. The fastest way to a running instance is one command, which pulls the published images and brings up the whole stack (API, dashboard, Postgres, auth, storage, cache). You do not need to clone the repository.

  • Docker and Docker Compose v2 (docker compose version)
  • About 2 GB of free disk for the images on first run

That’s all. Node, Postgres, and the auth services run inside the stack.

Terminal window
curl -fsSL https://raw.githubusercontent.com/binarysquadd/truss/main/install.sh | sh

This downloads the Compose file into ./truss, generates strong random secrets, and starts everything. Re-running is safe.

Give it a minute to run migrations and become healthy.

Open the dashboard at http://localhost:3000.

On first boot Truss seeds a default admin (the way Grafana and Argo CD do) so you can sign in right away:

  • Email: admin@truss.local

  • Password: printed once to the API logs —

    Terminal window
    docker compose -f docker-compose.selfhosted.yml logs truss-api | grep "Default admin"

Change it immediately under Settings → Account → Change Password.

In the dashboard, go to Settings → API Keys → Create. Pick service_role for full server-side access. The full secret is shown once, so copy it.

Terminal window
curl http://localhost:3000/v1/status \
-H "apikey: truss_sk_your_key_here"

The dashboard and API are served on the same origin (:3000); Nginx proxies /v1 and /api to the backend, so you point clients at one URL.

  • Self-Hosting — run it for production: Helm, TLS, hardening, backups
  • Configuration — every environment variable explained
  • API Keysanon vs service_role, rotation, scoping
  • Database — SQL-over-HTTP, Auto-REST, pgvector, full-text search