Admin
Loading…
Admins only
Log in with an admin account to see this page.
ZYLFR CONTROL ROOM
Operations Centre
A live overview of the things that keep your community running.
Reports
Messages and channels people have reported. Each keeps a copy of what was reported, so you can still see it if it's since been deleted. Take any action needed, then close the report with an outcome. The reporter sees whether action was taken, but not your note. Closed reports are deleted after a year.
🔒 Protect your admin account. Admins can disable people, read reports and download backups with everyone's data. Turn on two-step login in Settings.
Site stats
. The last 7 days compared with the 7 before. Only totals are kept: see the Privacy Notice.
| Day | Visitors | Busiest | New accounts | Streams | Streamed | Messages |
|---|
🌍 Audience geography
Anonymous country-level audience statistics. Based on active viewer connections, sampled every 30 seconds. No viewer IP addresses or identifiers are stored in geographic history. Times are UTC. Unknown countries are shown separately.
| Country | Connected | Watching |
|---|
| Country | Viewer-hours (est.) | Peak watching |
|---|
| Channel | Connected | Watching | Top countries |
|---|
Traffic
Video received from streamers (in, measured exactly) and sent to viewers (out, estimated: each viewer downloads the stream once, so it's the stream's size × how many are watching). Video is nearly all of a streaming site's traffic, so pages and chat aren't counted. Your hosting provider's figure will be a few percent higher, because encryption and network overhead aren't included.
| Channel | Sent to viewers (est.) | Received | Share |
|---|
Human check
Stops sign-up bots without a CAPTCHA, Google or any other company: people's browsers quietly solve a small maths puzzle (about a second), a hidden field catches simple bots, and forms sent within 2 seconds don't count. Used for sign-ups when anyone can sign up, for "Forgot your password?", and for logging in after a few wrong passwords.
Used only for account security: confirming addresses, "Forgot your password?" links, and "your password was changed" notices.
Activity log
Every change an admin makes (and every streaming pass a member gives), newest first: accounts, settings, reports, streams stopped, backups downloaded, and things done from the server command line. Only changes that worked are listed, and secrets like webhook addresses are never recorded. Kept for a year.
Server health
Checking…
| What's using it | Size |
|---|
Get a message when something goes wrong (and when it's fixed), with a reminder each day while it lasts. A private channel just for admins works well.
You can also point a free uptime monitor (like UptimeRobot or Uptime Kuma) at . It answers 200 while the site works, and 503 if streaming is down.
Live streams
Every channel that's live right now, with the same health check streamers see in their Settings. Streams with problems are listed first. It updates every couple of seconds.
0 means no limit. Regular broadcasters and Partners have separate limits. Every viewer downloads the stream at the bitrate it's sent, so this helps protect bandwidth and playback stability. Streams are averaged over 30 seconds with 10% leeway for audio and overhead. Streamers are told in their chat and their stream health panel. A stopped streamer can start again straight away at a lower bitrate.
Public "who's live" API
Read-only addresses that other websites, apps and bots can use to see who's live, without an account. They only share what anyone can already see on the home page. The guide has examples, including a "live now" badge for people's own websites.
Bot tokens let a program chat as an account. Keep them to accounts you trust: approve an account with its Bots switch in Users. Admins can always use them. A bot stops working straight away if its account's approval is withdrawn.
everyone who's live nowone channel
Go-live announcements on Discord
Announce every stream on the site in one Discord channel, with the streamer's name, title and a snapshot. Streamers can also add their own Discord server in their Settings.
Set PUBLIC_URL in docker-compose.yml (for example https://live.example.com) so announcements can link to streams and include pictures.
Discord server bot
A bot for your Discord server, running in its own container. Members who've linked their Discord account to Zylfr get a Partner role and a level role that follow their account. Members who haven't linked get none, and /link tells them how. It can also post when streamers go live, and it adds the commands /link, /whois, /live and /profile.
How to set it up
- Go to the Discord Developer Portal, press New Application and name it (like Zylfr). You can use the same application as "Continue with Discord".
- On its Bot page: press Reset Token and copy the token, and switch on Server Members Intent (needed for roles).
- Next to
docker-compose.yml, put these two lines in a file called.env, with the token and a long random secret of your own:DISCORD_BOT_TOKEN=…andDISCORD_BOT_SECRET=… - Start it:
docker compose --profile discord up -d --build. (This also restarts the app, so it learns the secret.) - Come back here and press Invite the bot to your server. Then, in Discord's Server Settings → Roles, drag the bot's role above the roles it should give out.
Backups
A copy of everything: accounts, channels, chat, sapphires, reports, and every uploaded picture, emote and offline image. They're kept separately from the site's data. For real peace of mind, download one now and then and keep it somewhere other than this server.
| Made | Size |
|---|
Backups contain everyone's data (including scrambled passwords), so keep downloaded copies safe. How to restore one is in the README, under "Backups".
Site details
These fill in the Terms of Service and Community Guidelines, so people know who runs the site and how to reach you. The wording of those pages lives in web/terms.html and web/guidelines.html.
Restart countdown
Before restarting Zylfr to update it, warn everyone with an animated countdown that covers the site. People can keep using the site until it covers it. At zero it says the site is restarting, and pages reload by themselves once it's back. Restart the app when it reaches zero (for example docker compose up -d --build). OBS overlays and embedded players don't show it, so it never appears on anyone's stream.
Announcement
A banner at the top of every page, for everyone. It appears straight away on pages that are open. People can dismiss it, and posting a new one shows it to them again.
Global emotes
Emotes everyone can use in every chat, by typing :name: or picking them from the emoji button. A channel's own emote with the same name wins in that channel. Same files as channel emotes: PNG, GIF (animated works), WebP or JPEG, up to 30 MB and 1254×1254, shrunk to fit 112×112. Up to 100.
Partner program
Streamers see these goals and how close they are in their Settings. Hitting them doesn't make anyone a Partner by itself: you decide, below. Partners get a Partner badge in every chat, their channel shown first on the home page while live, the extra emote and sticker slots, and their own channel page colours. (A slot limit you've set for one person in Users still wins.)
0 means that goal isn't needed. Everyone else has 50 emote slots and 30 sticker slots.
| Streamer | Followers | Hours (30 days) | Days (30 days) | Partner |
|---|
Seasonal themes
Special themes that switch on by themselves: 🎃 Halloween (black, pumpkin orange and purple, with the odd bat) from 17 October to 1 November, and 🎄 Christmas (pine green and berry red, with falling snow) from 1 December to 6 January. Anyone can pick another theme from the palette button, which lasts until that season ends, and switch the snow off. People who prefer less motion get no snow or bats.
"Now" switches one on for everyone straight away, whatever the date: handy for trying it out, or for keeping it going a bit longer. Set it back to "On their dates" afterwards.
Sign-ups
Who can make a new account. People who already have one can always log in.
Sapphires
Everyone starts with no sapphires. Viewers earn them by watching live streams: the stream has to be playing in a visible tab, several tabs count once, and streamers don't earn from their own channel.
Give or take sapphires with the button in each person's row in Users.
| When | Who | Change | New balance | By | Note |
|---|
Invite codes
Share a code, or the invite link, which opens the sign-up form with the code filled in. Codes work whenever sign-ups are set to Invite only.
Leave Uses or Expires empty for no limit.
| Code | Note | Used | Expires | Status | Created by | Used by |
|---|
Users
Turning off streaming or disabling an account stops their live stream straight away. Disabled accounts are logged out, can't log back in, and their recent chat messages are removed.
| Name | Joined | Watched | Sapphires | Followers | Can stream | Passes | Emotes | Bots | Admin |
|---|