santi logo

santi

A free, open-source agile tracker you host yourself.

CI Latest release License: AGPL-3.0

Website · Self-hosting · Docs · Changelog · Contributing

santi gives a team boards, a backlog, sprints, epics and sprint reports, from the web, the command line or an AI agent. The server is Rust and PostgreSQL, the UI is React, and it ships as one container image with no per-seat pricing and no telemetry. It is pre-1.0 and released often; the HTTP API may change between minor versions until 1.0. ![Board with an active sprint](docs/screenshots/board.webp) ## Highlights - **Scrum and Kanban boards:** columns with WIP limits; move cards by drag and drop or the keyboard. - **Backlog and sprints:** plan by dragging, timed sprints, a report for every completed sprint and a velocity chart. - **Issues and epics:** stories, tasks, bugs and subtasks with points, labels, comments and an epic panel. - **CLI and MCP:** the `santi` CLI and `santi mcp` give scripts and AI agents what the web UI does. - **Import from Jira or Linear:** upload a CSV export and review the mapping before it imports. - **Fast Rust server:** p95 under 30 ms on 5,000 issues; under 170 KB of JavaScript per page. - **One container to self-host:** the image plus PostgreSQL; export your data as JSON any time. ## Get started The website is [getsanti.app](https://getsanti.app). Hosted plans are not open yet, so today you run santi yourself. ### Self-host **Docker Compose** (the image and PostgreSQL from [`compose.yaml`](compose.yaml)): ```bash git clone https://github.com/emersonjds/santi.git cd santi docker compose up -d ``` Open , choose **Create account**, then **New project**. The image is `linux/amd64`; on Apple Silicon or other ARM hosts, run `docker pull --platform linux/amd64 ghcr.io/emersonjds/santi:latest` before `docker compose up -d`. **Docker with your own PostgreSQL 17:** ```bash docker run -d --name santi --restart unless-stopped \ -p 127.0.0.1:8080:8080 \ -e DATABASE_URL=postgres://santi:PASSWORD@db.example.com:5432/santi \ -v santi-attachments:/data \ ghcr.io/emersonjds/santi:latest curl http://localhost:8080/health ``` **Railway:** see [Deploy on Railway](docs/deploy/railway.md). Any address other than `localhost` needs HTTPS in front. Configuration, reverse proxy, upgrades and backups: [docs/self-hosting.md](docs/self-hosting.md). ### CLI From the checkout, with Rust 1.97 or newer. Create an API token in the account menu first. ```bash cargo install --path crates/santi-cli santi login --url http://localhost:8080 santi projects list ``` ## Documentation - [Self-hosting](docs/self-hosting.md): configuration, upgrades, backups and restore, reverse proxy, importing, API and CLI reference - [MCP setup](docs/mcp.md) for AI agents and editors - [Deploy on Railway](docs/deploy/railway.md) - [Performance](docs/perf.md): budgets, numbers and the load script - API: interactive docs at `/docs`, OpenAPI 3.1 at `/openapi.json` on your server - [Changelog](CHANGELOG.md) ## Contributing Setup, quality gate and workflow are in [CONTRIBUTING.md](CONTRIBUTING.md). Never paste code, text or assets from proprietary trackers; follow the [Code of Conduct](CODE_OF_CONDUCT.md) and report vulnerabilities as described in [SECURITY.md](SECURITY.md). ## Pricing and sustainability santi is free and open source, and every feature ships in the open code. Self-hosting is free with no user or project limits; hosting and services fund the work, never features locked out of the code. Plans and prices: [docs/pricing.md](docs/pricing.md). ## License santi is licensed under the [GNU Affero General Public License v3.0](LICENSE) (AGPL-3.0-only). Use it, change it and run it for your team freely; if you offer a modified santi to others over a network, publish your changes under the same license. Versions up to 0.24.1 were released under MIT OR Apache-2.0 and stay available under those terms. The name and logo are covered by the [trademark policy](TRADEMARK.md). The web UI started from [shadcn-admin](https://github.com/satnaing/shadcn-admin) (MIT); its notice is in [web/LICENSE-shadcn-admin](web/LICENSE-shadcn-admin).