# Tarsana documentation

Build hardened server images from a spec you write, check how each image was built, and install it on your own servers.

You describe the server you want in a spec. Tarsana builds a hardened image from it, signs the image, and creates servers from it in your own cloud account. You can check every step yourself.

## Start here

Each quickstart takes a few minutes and ends with something that works. Follow them in order the first time.

| Quickstart | You end up with |
|---|---|
| [Build your first image](/quickstarts/first-image) | An account, an API access token and a built, signed image |
| [Run it on your provider](/quickstarts/run-on-your-provider) | A server in your own Hetzner Cloud project, created from your spec |
| [Update a server](/quickstarts/update-a-server) | The same server role on a new image, with the old server removed |
| [Verify a signature yourself](/quickstarts/verify-a-signature) | Proof, with standard tools, that an image is the one Tarsana signed |

## Reference

- [API reference](/api): every operation, with an example request and response.
- [Errors](/api/errors): every error code, what it means and what to do.
- [MCP](/mcp): use Tarsana from an AI assistant or agent.
- [Concepts](/concepts): tenant, spec, image, attestation and server, in one page.

## Ways to use Tarsana

| Channel | Address | Good for |
|---|---|---|
| API | `https://api.tarsana.io` | Scripts, CI jobs and your own tools |
| MCP | `https://mcp.tarsana.io/sse` | AI assistants and agents |
| Dashboard | `https://app.tarsana.io` | Signing in and seeing your account at a glance |

All three use the same operations and return the same answers.

## Docs for agents

Every page is also available as Markdown: add `.md` to its address, for example [/api/errors.md](/api/errors). The index of all pages is at `https://docs.tarsana.io/llms.txt`.
