Deployment tutorials
Documentation/Start here
Deployment tutorials4 min read

Scribe tutorials

On this page

Build one deployment in five stages with scribe-ctl, the operations tool. Start with a single storage server and two working copies, add identity and access control, spread repositories across two stores behind a gateway, operate and upgrade the cluster, then run the web interface in Docker. Stages 1–4 grow one cluster: each keeps the repositories of the previous stage.

StageWhat you will buildscribe-ctl commands
1. Minimal serverOne plaintext storage server and a two-client round tripsetup --variant storage, up, down
2. Add authenticationTLS, auth, users, and repository rolesadd auth, access
3. Scale with a gatewayTwo stores behind one client endpointadd gateway, setup for a second store, repo list
4. Operate the clusterStatus, health, files, logs, inventory, renewal and CA rotation, an upgrade, other machinesstatus, doctor, where, logs, df, renew, upgrade, --remote, adopt
5. Start the web interfaceA Docker cluster with the web interface; browser sign-insetup --runtime docker --web, up

Why scribe-ctl from the first stage

Stage 1 could start scribe-server by hand, and the bare-metal guide shows how. The tutorials use scribe-ctl from the start because the cluster then grows in place: add auth and add gateway change the same definition file and keep every repository, the controller records the executables so upgrade can switch releases later, and every stage ends with one command to start and one to stop. Nothing is hidden: each stage has a What scribe-ctl did for you section that names the files and explains the concepts (the data root, the two certificate authorities, the auth pepper and revision witness, credentials, grants, the gateway's service account). To do a stage by hand instead, the manual guides grow the same deployment with the executables themselves, on bare metal or with Docker Compose, stage by stage, with the same files.

Install

From a source checkout, the installation script builds all six executables in release mode and installs them for your user (~/.local/bin, or %LOCALAPPDATA%\Scribe\bin on Windows):

sh
./scripts/install.sh            # macOS and Linux
powershell
./scripts/install.ps1           # Windows

Put the destination on your PATH; see build and install. Keep the executables together: scribe-ctl finds the services beside itself.

The script can also hand over to scribe-ctl in the same line, which is stage 1's first step: ./scripts/install.sh --setup storage --config ~/scribe-demo/scribe-cluster.toml.

Working directory and ports

Use a fresh scribe-demo directory outside any Scribe workspace. Unless a step says otherwise, run commands from that directory; every new terminal must change to it. The examples use a Unix shell on macOS or Linux. Windows users need equivalent directory, environment, and file-editing steps; the tutorials do not establish Windows test coverage.

Use a shell without unrelated SCRIBE_* connection, credential, or configuration overrides. From stage 2, the examples use separate clients/alice and clients/bob configuration directories, so two demo users on one OS account do not replace each other's saved sessions.

scribe-ctl uses these default ports. If one is taken, add --port-offset N to stage 1's setup (every port moves by N; later stages follow) and adjust the client commands:

ServiceAddress
Auth, from stage 2127.0.0.1:7443
Storage A127.0.0.1:7447
Storage B, from stage 3127.0.0.1:7448
Gateway, from stage 3127.0.0.1:7557
Web interface, stage 5http://localhost:8080 (bound to 127.0.0.1)

Keep the whole deployment folder private. Password, pepper, private-key, and credential-file contents never belong in shell arguments, logs, or version control. Each stage names the files a process reads; none asks you to print one.

Outputs in the tutorials are real, from a run on macOS, shown with the default ports and with paths under /home/you; ... marks lines left out.

Workspace tutorials

These guides cover daily work and do not require completing all deployment stages.

Coming from another version-control system? Start with the Scribe, Git, and Perforce comparison for concepts, command equivalents, and a Game/Engine example.

GuideWhat you will learnPrerequisite
Work offlineEdit without connectivity, reconcile locks and revisions, and submit safelyA synced workspace; the demo continues stage 1
Work with repository mountsEdit parent files, publish engine/game changes together, adopt pins, select optional art, and recover interruptionsA parent repository with configured mounts and a programmer profile

Finding details after the walkthrough

Start with 1. Minimal server.

For branch integration after setup, follow the backport example and partial-view merge walkthrough. The latter explains how a source-only workspace handles changes and conflicts in excluded assets. Proposals covers the optional web review workflow.

Source docs/tutorials/README.mdSnapshot 2b8dcccb