vibe-live docs

The instance

Settings → Instance.

This instance

The tab opens on the instance at a glance:

The same figures, and more, are what a Prometheus scrapes; see the operators' Monitoring page.

Name, description and icon

Shown in the page title, on the sign-in page, and in link previews when somebody shares a page from this instance.

Theme

How the instance looks to everyone: its colours, its corners and its typeface. Pick one of eight themes:

Theme Look
Lo-fi (the standard) dusk indigo and lamplight peach, soft corners, a rounded face
Cinema a dark theatre with a gold marquee accent, or a matinee in ivory and bronze; a serif face
Arcade gaming-stream neon: cyan and magenta on near-black, or teal and plum on lavender white; nearly square corners
Newsroom broadcast navy and blue, on white or on a night-desk navy
Sakura pastel pink and lavender, round corners
Control room black and teleprompter yellow, or white and deep blue; high contrast (AAA)
Violet near-black or near-white, violet accent
Crimson near-black or white, crimson accent

Every theme has a dark and a light set: it follows each reader's device, and is dark when the device does not say. Every set meets WCAG 2.2 AA contrast (Control room, AAA), and red always means live and danger.

Preview on this browser paints the theme on your tab only, on every page you open, until you press Stop preview or close the tab -- nobody else sees it. Show picks the set to preview, so you can see the light one from a dark device. Apply to everyone saves it; viewers see it on their next page.

Customize starts Custom from the theme on screen: a dark set, a light set or both, each colour, the four corner sizes, and the typeface. The typefaces are fonts already on each reader's device; nothing is downloaded from anywhere else.

Readers can choose a theme for themselves in their own settings; yours is what everyone sees until they do.

Identity provider

Where sign-ins go, if the instance uses one (Authentik, Keycloak, any OpenID Connect provider): its issuer URL, the client ID and secret, and how its button is labelled. Changes take effect at the next restart of the server.

If the operator configured the provider through the server's environment instead, this section is read-only -- the server's settings win, and a change here would do nothing.

When setting up the provider: create the application with the authorization code grant and the openid, email and profile scopes, and redirect URI https://<your instance>/auth/callback. Admins are the members of the group named by the operator (vibe-live-admins by default), sent in the provider's groups claim.

Documentation

This documentation is built into the app and served at https://<your instance>/docs/. Documentation chooses who may read it:

A Documentation link appears at the foot of every page for whoever may open it. Until you choose, the server's VIBE_LIVE_DOCS_ACCESS decides (off unless the operator set it).

Seeking through live streams

Let viewers seek through a live stream -- on by default. Viewers can drag back to any moment of a stream in progress, from its start, and return to live. It changes the next stream that starts, not those already live. Nothing is kept after a stream ends because of it: that is past broadcasts, below. The server records each live stream for it, and deletes the recording when the stream ends unless it is kept.

Past broadcasts

Streams kept after they end, for viewers to watch again. Off by default: nothing is kept until you allow it here AND each streamer turns it on for their own channel.

Past a limit, the oldest go first -- that streamer's own for their limit, anybody's for the disk -- and a stream in progress is never cut short: if nothing old is left to delete, it simply is not kept. Under the switches the page says what recordings take and how full the disk is.

Where this server keeps them, and whether streamers bring their own:

The limits above -- retention, disk, per streamer and this count -- limit what you keep. A replay that also lives in the streamer's bucket only loses your copy; one that does not is deleted.

This instance's bucket: endpoint, region, name, an optional folder, path-style addressing for self-hosted stores, and a key pair. Save, then Test, which writes and deletes a small file and says what the bucket answered. The secret is never shown again. Forget this bucket leaves what is in it where it is.

If the media engine records nothing, the page says so instead: no stream can be kept on that instance. Where recordings are stored on the server is the operator's choice (VIBE_LIVE_RECORDINGS_DIR, see Operators).

Every past broadcast

Below the settings, every past broadcast on the instance with whose it is: filter by streamer or title, sort newest or largest (the line above the list says who takes the most). For each one you can rename it, change who sees it, delete it, or hide it -- moderation: a hidden broadcast plays for nobody but its streamer and the admins, its files included, and only an admin can list it again.

Streamer stats

Streamers see how their streams went on their own Stats page: how many watched over time, how long they stayed, and who came back. Viewers are kept only as anonymous codes, never their address or account.

Keep figures for sets how long that data is kept, from 1 to 365 days (90 by default). Older figures are deleted within the hour after you shorten it, and a streamer's figures are always deleted with their account.

Alerts

Alerts posts a message to a webhook of yours (Discord, Slack, or anything that accepts their shape) when something needs you:

The site checks every minute, and each alert is sent once when it starts and once when it clears. Send a test checks that messages arrive. The webhook is saved encrypted and never shown again; leave the field empty to keep it, or Turn alerts off to forget it. Running Prometheus instead? The same alerts exist as rules, see the operators' Monitoring page.

Rate limits

Rate limits says how many requests each limit allows per window before refusing the rest -- password guesses on one account, sign-ins from one address, lookups and peer servers' requests, Fediverse deliveries, mentions, chat messages and the others, each with a line on what it bounds. Change the count or the window and Save: it applies at once on the server that answered and within 30 seconds on every other. Default puts it back.

No limit can be switched off: a count is at least 1 and a window between 10 seconds and a day. The limits against guessing a password or a second factor stop at 100 per window, since above that they no longer stop a guesser. Refused is what each limit refused since the server last started; the same figure is vibe_live_rate_limited_total for a Prometheus.

Instance (shown once you have peers) picks whose limits you see: All instances by default, or one peer server. For a peer, the limits its requests go through -- lookups and peer requests, Fediverse deliveries, signing in from it -- can be set apart from everybody else's, for a busy peer that keeps hitting them. Its refusals are counted apart too. A request is counted as that peer's only when it says it is signed by it, and per address, so somebody merely claiming to be a peer from elsewhere cannot use its allowance up. Same as all drops the peer's own limit.

Media engine

Read-only: which engine carries the video on this instance, and what that gives you here --

The engine is chosen by the operator when the server is deployed, never from this page. What each engine offers, and how to change it, is in Choosing and swapping engines.