Docs

Self-hosting

The Community edition is the same product, free and open source (AGPL server, MIT collector), with no limits: one Rust binary, SQLite to try it and Postgres for production.

Install

cargo build --release
./target/release/trace init     # choose where Trace keeps its data
./target/release/trace serve    # prints a one-time link for the first account

trace init asks which database to use, checks it, creates the tables and saves the choice as TRACE_DB in trace.env. To run it in Docker, see the Dockerfile and deploy/README.md in the repository.

SQLite or Postgres

WhenTRACE_DB
SQLiteTrying Trace, development, a few small websites. Nothing to install.trace.db
PostgresA server other people rely on. Needs Postgres 10 or newer.postgres://trace:PASSWORD@localhost/trace
createuser trace --pwprompt && createdb trace --owner trace
trace init --database postgres --db postgres://trace:PASSWORD@localhost/trace

Settings

VariableDefault
TRACE_ADDR127.0.0.1:4318Listen address
TRACE_ALLOW_SIGNUPoffLet anyone create an account
TRACE_RETENTION_DAYS90Delete raw events older than this
TRACE_DEFAULT_PLANunlimitedPlan for new accounts

Then point the tag and your agent at your own address: https://trace.example.com/d.js and https://trace.example.com/mcp.

Backups and upgrades

Back up SQLite with Litestream or sqlite3 trace.db ".backup backup.db", and Postgres with its own tools. Upgrades add columns and tables on start and never remove any, so keep a backup before each one.

Moving from hosted

It is the same software. Your tag and trace.json stay the same; only the server address changes. The code is on GitHub.