# Run Scribe

There are three ways to run the Scribe services, and every way grows the same
deployment in the same order: one storage server, then shared authentication,
then a gateway in front of more storage servers. The web interface runs beside
it in Docker.

| Way | Start here | What you run |
| --- | --- | --- |
| With `scribe-ctl`, natively or in Docker | [Tutorials 1–5](/docs/tutorials.md), then the [cluster guide](/docs/cluster-usage.md) | One definition file; `scribe-ctl` creates, starts, renews, upgrades and diagnoses everything, on this machine or another over ssh |
| By hand, on bare metal | [Bare metal](/docs/manual/bare-metal.md) | `scribe-server`, `scribe-auth` and `scribe-gateway` under your own service manager |
| By hand, with Docker Compose | [Docker Compose](/docs/manual/docker-compose.md) | A Compose project you write, from the images in `docker/` |

The manual guides are also the reference for what `scribe-ctl` does for you:
each tutorial stage names the files it creates, and the matching manual stage
creates the same files with the executables.

| Task | With `scribe-ctl` | By hand |
| --- | --- | --- |
| One storage server | [Tutorial 1](/docs/tutorials/01-minimal-server.md) | [Bare metal §1](/docs/manual/bare-metal.md#1-one-storage-server), [Docker §1](/docs/manual/docker-compose.md#1-one-storage-server) |
| Add authentication, people and grants | [Tutorial 2](/docs/tutorials/02-add-auth.md) | [Bare metal §2](/docs/manual/bare-metal.md#2-add-authentication), [Docker §2](/docs/manual/docker-compose.md#2-add-authentication) |
| Add a gateway and more storage servers | [Tutorial 3](/docs/tutorials/03-add-gateway.md) | [Bare metal §3–4](/docs/manual/bare-metal.md#3-add-a-gateway), [Docker §3–4](/docs/manual/docker-compose.md#3-add-a-gateway) |
| Web interface | [Tutorial 5](/docs/tutorials/05-start-web-interface.md) | [Web interface](/docs/manual/web-interface.md) |
| Renew credentials and certificates, rotate CAs | [Tutorial 4 §5](/docs/tutorials/04-use-ctl.md#5-renew-credentials-and-certificates) | [Certificates and credentials](/docs/manual/certificates.md) |
| Upgrade to a new release | [Tutorial 4 §6](/docs/tutorials/04-use-ctl.md#6-upgrade-to-a-new-build) | [Upgrades](/docs/manual/upgrades.md) |
| Back up and restore | [Backups](/docs/migration-backup-restore.md) | [Backups](/docs/migration-backup-restore.md) |
| A team's first connection, login and trust | [Client trust and login](/docs/client-usage.md#connect-to-an-authenticated-server) | the same |

Before a team uses any of them, go through the [production
checklist](/docs/production-deployment.md).
