Euphoric POV is one Go binary with an embedded web page and a SQLite database. It's configured with servers.json, a few environment variables and command-line flags.

servers.json

Edit the file and restart the service. No rebuild is needed.

games

The Twitch categories to track, and the matching Kick category.

{
  "id": "32982",
  "name": "Grand Theft Auto V",
  "short": "GTA RP",
  "kick_category_id": 8
}

On Kick, GTA V is 8 and RDR 2 is 18265. kick_category can name the category instead of using its ID, but exact names are fragile.

servers

Each server has an id, a display name, a game (a Twitch category ID from games) and a list of case-insensitive regex patterns.

{
  "id": "nopixel-4",
  "name": "NoPixel 4.0",
  "game": "32982",
  "patterns": ["(no\\s*pixel|\\bnp)\\s*4(\\.0)?\\b"]
}
  • Order matters. A stream goes to the first server whose patterns match, so put specific patterns first. For example, NoPixel 4.0 comes before NoPixel, and Wild West RP before Wild RP.
  • Titles before tags. A stream's title is checked against every server first. Tags are only tried when the title matches nothing, because streamers often keep old or general tags.
  • Sidebar order follows file order, so put English-language and popular communities first.
  • Groups. "group" (for example "German" or "India") shows a heading above a run of servers. Keep each group's servers together at the end of the list.
  • "roster": "required" makes a server approved-only. No server currently uses it.

characters

Optional character names, by streamer login and server.

Environment variables

VariableRequiredPurpose
TWITCH_CLIENT_ID, TWITCH_CLIENT_SECRETYesFrom the Twitch developer console. For sign-in, the app's OAuth redirect URLs must include <public-url>/auth/callback.
KICK_CLIENT_ID, KICK_CLIENT_SECRETNoFrom Kick's developer settings. The redirect URL must be <public-url>/auth/kick/callback. Without them, Kick tracking and Kick sign-in are off.
POV_ADMINSNoComma-separated account IDs allowed into /admin. A Twitch account's ID is its Twitch user ID; a Kick account's is kick:<id>.

Flags

FlagPurpose
-public-urlThe site's origin. Used for sign-in redirects, alert links and the same-site check on POST and DELETE requests.
-addrThe address to listen on, for example 127.0.0.1:8090.
-configPath to servers.json.
-dbPath to the SQLite database. It upgrades itself on start.
-demoRuns with generated streams, sessions and clips. Needs no credentials.

© 2026 Euphoric Software