{{define "title"}}{{.Title}}{{end}} {{define "content"}} {{$page := .Page}}
Dashboard/Add host

Add a host

Mints a one-time enrolment token (TTL 1 hour) and binds the repo credentials to it. The token can only be used once — generate a fresh one if it expires or you typed something wrong.

{{if $page.Error}}
{{$page.Error}}
{{end}} {{if $page.OutstandingTokens}}

Outstanding install tokens

closed the install snippet tab? regenerate to get a fresh URL
{{range $page.OutstandingTokens}} {{end}}
id repo created expires
{{.ShortHash}}… {{if .RepoURL}}{{.RepoURL}}{{else}}{{end}} {{.CreatedAt | relTime}} {{.ExpiresAt | relTime}}
{{end}}

Host

Becomes the host's display name. Most operators use the box's actual hostname so logs line up.
Free-form. Used for filtering and grouping on the dashboard.

Initial schedule · manual

These paths become an initial manual schedule on the new host — manual = no cron, only fires when you click Run now. You can edit this schedule (or add automated ones alongside it) from the host's Schedules tab. Leave blank to skip — the host will enrol but can't back up until you add a schedule.

Restic repository

Whatever restic -r would accept. Most fleets terminate at a restic/rest-server; s3: and b2: URLs work equally well.
For rest-server with --private-repos, this is the per-host htpasswd user — and the URL path segment must match. Leave blank and we'll use the hostname above.
Encrypted at rest using the server's AEAD key, pushed to the agent only over the authenticated WebSocket. Leave blank and we'll mint a 24-byte URL-safe random password — you'll see it on the next page (and can come back to it from the dashboard's pending-host link until the agent connects).
Cancel
{{end}}