PokerTH Web Client — Admin

Enter your admin token to continue.

Set on the server: STATS_ADMIN_TOKEN in the .env file next to docker-compose.yml (Docker), or pokerth-web set-token on a native install.
PokerTH Admin
Build—
Signed in with—

PokerTH Admin

Overview

World clock

The strip above, for every admin key: one dial per region, ranked by offset around the reference zone. Up to 12 regions, plus the reference. Applies immediately.

How the dials read

Each region gets a dial, its time and its name, ranked by offset — earliest on the left, latest on the right — around the reference below, which therefore sits in the middle. The face of each dial is that city’s actual sky, shaded from the sun’s height above its horizon: the zenith at the top, the horizon at the bottom, so the warmth of a sunset stays low on the dial while the top has already turned to night. There are no steps — the colour moves with the sun, and follows the season and the latitude, so a northern winter afternoon reads as dusk while the tropics are still in daylight. The time turns green between 18:00 and 01:00 locally, the hours when players come to the tables. A weekday is appended where the region has already rolled over, and hovering a dial gives its phase and the sun’s altitude. Up to 12 regions, plus the reference, which is always shown whether or not it is ticked. This server’s own clock is not here — it heads the status list under Health & logs. Applies immediately (no restart needed).

Reference zone

Loading…
Loading…

Connections, last 14 days

by entry mode · today so far, lighter
Loading…

Server

Loading…

Connected right now

Loading…

Recent changes

Loading…

Refreshed every 10 seconds for what is live, every minute for the rest, while this page is open.

Anonymous footfall — no IP is ever stored. “Visits” counts browser sessions; “Unique” counts distinct devices; “New” counts devices seen for the first time. Green or red marks a move of 10 % or more against the previous period (today is compared with yesterday up to the same hour); gold means flat or nothing to compare. Everything on this tab reads the same anonymous ping; nothing here identifies a person.

Filters

Period
Entry modeconnections only

Applies to connections: the map’s Connections layer, the countries and every chart split by entry mode. A visit is counted before any mode is chosen.

Narrow to
Loading…
Loading…

Bottom line

What the figures in the other sections add up to, stated in plain words. Each line is derived, not written by hand — a claim disappears when the measurement behind it is missing.

Loading…

Reset traffic stats

⚠ This permanently deletes ALL visit data — today, history, totals, track play counts. This cannot be undone.

Loading…

Daily visits

Loading…

New devices per day

A device is counted once, the first time it is ever seen. The horizontal marks are the average over each half of the window — the comparison acquisition is actually judged on; their values are in the header.

Loading…

Coming back

Of the devices seen for the very first time in the last 14 days, how many returned afterwards — and on how many separate days of their first week they showed up. A cohort only counts once its whole return window is over, on complete days (today is not finished), so the three rates are measured against different totals, and that is deliberate. Devices already known before this build, or first seen on the day counting began (or restarted after a reset), are left out of the rates and serve as the established base, read over its last 7 complete days — the same length of time as a newcomer's first week.

Loading…
Loading…

Last 48 h

Loading…

Time of day

An average day, hour by hour, over the last 14 days — server local time. On the left, when people come; on the right, whether the ones arriving at that hour are new out of proportion with the traffic (1.0 = exactly in proportion). A quiet hour is ordinary; a quiet hour that still draws first-time visitors is where they find an empty lobby.

Loading…

Last 48 h by entry mode

Sessions opened per hour over the last 48 hours (server local time), stacked by entry mode — the same count as “Where sessions open” below, spread hour by hour. Tap a legend entry to hide a mode and rescale the others; tap a bar to read it. The last bar is the hour in progress. Hourly counting by mode started with 2.1.10-web.7: hours before that are empty, not quiet.

Loading…

Internet · pokerth.net

Loading…

LAN servers

Loading…

pokerth.net vs web client

Every 5 minutes the proxy reads the official counters of pokerth.net (the same figures as the Internet card of the login screen: online, tables, waiting, today) and counts, at that same instant, the web client players signed in to pokerth.net — through this proxy or connected straight to it. Share = web client players ÷ players online on pokerth.net, from hourly means (48 h) or daily means (period). /live spectators are shown apart, not in the share. Recording started with 2.1.10-web.9 and needs the live figures switched on (Settings): hours before that are empty, not quiet.

Loading…

Where sessions open

Counts a session once per entry mode, when its connection opens, whatever the transport (a page loaded but never connected is a visit, not a session): Internet games routed through this proxy still count as pokerth.net. Offline = training vs bots. /live = spectator sessions from the embedded view, counted apart from the web client (since 2.1.8-web.100; earlier ones sit under pokerth.net).

Loading…

/live spectator view

Visits to the spectator view embedded on pokerth.net, kept out of every other traffic figure and of “Who visits” (since 2.1.8-web.101; earlier ones are mixed in with the web client). Visits = browser sessions that loaded the view; unique = distinct devices; connected = those whose connection opened (the /live row of “Where sessions open”). The gap is pages closed before connecting, a refused connection, or crawlers that render pokerth.net with its embedded view but never open a WebSocket. /live keeps its own device id, so a device using both is counted once on each side.

Loading…
Loading…

What visitors run

From the same anonymous ping as the visit counter: system and browser read from the User-Agent (refined by the brand list Chromium browsers send, which tells Brave apart), major versions from the User-Agent where it still gives them (iOS, Android outside Chrome, browsers — per-day history only, from 2.1.10-web.257), language from the request header, installed app vs browser tab reported by the client. Sliced by the period selected above where a per-day history exists, running totals otherwise — what to test on, and which of the interface languages are actually used. In the language view the arrow compares a language’s share over the last 14 days (full days) with the same span before, only when the change is statistically significant.

Loading…

Where visitors come from

One source per visit, read from the landing page before the address bar is cleaned: a utm_source tag if the link had one, else the domain of the referring site (never its path), else a table invite link, else one of this site’s own pages, else a ?lang= link, else direct — typed, bookmark, installed app, or a referrer withheld by the browser or the app the link was opened in (chat apps usually withhold it). Sources are then folded into channels for reading: search engines, AI assistants (ChatGPT tags its own links utm_source=chatgpt.com, so that is not a campaign of ours), PokerTH.net, social and chat apps, real campaigns, other sites; a channel with several sources unfolds. “New” = first visits; returning = every other visit. Channels = visits by channel; New visitors = the same channels ranked by first visits, against returning ones; Languages = first visits by source and browser language (languages are kept for first visits only). Follows the period selected above.

Loading…
Loading…

Most played tracks

Counts a play each time a track starts in the players’ music panel — resuming after a pause is not a new play. No visitor id, no listening time. Radio stations are not counted as plays: a live stream has no track end, so “a play” would mean nothing there — but they can be voted on. The ranking follows the period selected above (all-time before per-day counting started); the bars stack the top five titles by day, with the rest grouped. ▲ / ▼ are the players’ thumbs on each entry, running totals since voting started (one vote per device, no per-day history). The arrow compares a title’s share of plays over the second half of the period (full days) with the first half, only when the change is statistically significant — the same test as the languages.

Loading…
Loading…

Offer, tips and Ranking funnel

The contextual assistant (the Ace). Anonymous counters: no visitor id, no name, no table — only which tips are shown, done (Got it or the button) or put off (Later), whether the first-launch offer is accepted, and the Ranking funnel: a table highlighted in the lobby → joined from the bubble → that game started (a Ranking game only starts when its 10 seats are full). Guests are counted apart: they cannot play Ranking games and only get the free-account bubble. Follows the period selected above.

Loading…
Loading…

World map

Where visits come from, by country, over the last 14 days. The country is read from the browser’s time zone (Europe/Paris → France), sent with the same anonymous visit ping — no IP address is looked up. It is an approximation: a VPN does not change it, a traveller’s device does, and zones the table does not know (UTC, Etc/GMT…) count as Unknown. “Visits” counts browser sessions, “New devices” the devices seen for the first time, “Installed app” and “Phones” the visits from the installed app and from a phone or tablet; “Connections” counts the sessions that opened a game, in the entry modes picked at the top of the page, as in Activity › Where sessions open — a grey bar in the list means visits that never opened a game. The band above the map gives the local time along it, the evening in green. Detected bots are left out while “Bots hidden” is on; a country that still looks automated (only new devices, no game) is tagged “bot?”. “Day / night” shades where it is night right now, with the civil, nautical and astronomical twilights, from the real position of the sun — season and hemisphere included; the country card then adds its local time (legal time, summer time included; the main zone for a country on several) and its sunset, at the centre of the country. Counted since 2.1.10-web.28: older clients send no time zone and are left out, so totals here can be below the Overview’s.

Loading…

Connections per day, by entry mode

Sessions that opened a game, in the entry modes picked at the top of the page, one bar a day (the last one in progress). The dashed line is the same count over the last 14 days just before, point for point. Hide a mode from the legend to read the others on their own scale.

Loading…

Countries

Every country with at least one count for the selection above, largest first, with its sessions split by entry mode. Tap a row to show it on the map card. Countries too small for the map (Singapore, Malta, Monaco…) appear only here.

Loading…
Loading…

Live connections

Everyone connected right now, refreshed every 5 s while this tab is open. IP addresses are partially masked.

Bridges, notices and /live

Bridges are players whose game traffic goes through this proxy; notices are lightweight channels (players connected straight to pokerth.net, or training) that only receive broadcasts. Connections from the /live spectator view are tagged and counted apart.

Loading…
Loading…

Connections by country

Where the connections open right now come from. A country takes the colour of its main entry mode, deeper with more connections; a tile above narrows the map to its mode. The country comes from each browser’s time zone. Local time along the top.

Loading…
Loading…

Client script errors

JavaScript errors reported by players' browsers, one line per bug with a counter. Kept in memory only — a restart clears the list. Copy all and Export take the errors the list shows, filters included.

What is sent, bots, and the colours

Players can switch the reporting off in Advanced options; nothing but the error itself, the build, the device and a masked IP is ever sent. Errors from search-engine crawlers are kept but marked Bot only (or incl. bots): none of them reaches a player. Each error carries a colour by type: script error (an exception in the client), rejection (a promise nobody caught), load failure (one of our files did not arrive), recovered (an automatic retry worked) and diagnostic (the probe that tells why a file failed).

Loading…
Loading…

Import a package

A .zip exported for the PokerTH web client: pick what it holds, then drop it. A table style, a card deck or a seat pack is also applied to this browser at once, so you can check it in the app.

Drop a .zip here, or click to choose

Library

On / Off shows or hides an entry in the players’ pickers (they see it on reload). Use applies it to this browser only. Entries shipped with the web client are built in: hide them, they cannot be removed.

Table styles

Card decks

Seats

Loading…

Music player

Available to players
Show vote counts to players

Players see two thumbs on the track they are listening to; counts appear next to each entry in the library below. Radios are votable too.

How votes are counted

One vote per device per track, deduplicated on a salted hash of the same anonymous id used by the visit counter — no IP, no nickname, no listening time. Blind is the default: a player sees their own thumb but not the totals, so the figures on screen cannot sway the answer. Radios are votable, unlike plays.

Off removes the 🎵 entry from every player menu and makes /music/* answer 404 (manifest and MP3s). The track list below stays fully editable. Players already in a session keep the player until they reload.

Add to the library

Title
Artist
Credit
License URL
Drop an .mp3 here, or click to choose
…or URL

The track appears in players’ music panel automatically the next time they open it. Please make sure you have the right to share the file and that the author is credited.

Name
Genre
Stream URL
Credit
License URL
…or M3U

The station appears in the Radios tab of the players’ music panel. Use royalty-free stations (Creative Commons or artist-permission) and keep the credit line accurate. http:// streams are rejected — the app is served over HTTPS and browsers block mixed content.

Library

Loading…
Loading…

Players

Leaderboard reset

For the default board (the local server and typed addresses). Each listed LAN server has its own period, set in Community › LAN directory.

Automatic reset period
Loading…

Entry modes

The doors the login screen offers, and the one a first-time visitor finds open. Applies immediately.

Opens on (first visit)

Server identity

The name and banner at the top of the login screen, for everyone, whatever the theme. Leave blank for “PokerTH” / “Web Client”.

Server name
Banner / tagline
PokerTH title

Live figures on the Internet card

A line under the Internet card: players online, tables, games today. It hides itself whenever the figures are unusable.

How the figures are read

The proxy is the only reader: it fetches the JSON counters the official site publishes once per interval and serves every player from that one copy, so the upstream sees one request per interval instead of one per open tab, and the browser never reaches another origin. The line hides itself whenever the answer is unusable (counters flagged stale, address unreachable, feature off here), leaving the card exactly as it was.

JSON address

Expects { online, today, tables, waiting, stale }. Blank = the official address. http and https only; a host on your own network is allowed (self-hosted install).

Refresh every (seconds, 30–900)
What players see on the login screen right now

Welcome / rules message (first visit)

Shown once in a centered popup the first time someone opens the app, and again whenever you edit it. Each visitor sees the version matching their language (fallback below). Players dismiss it with “I understand”.

Tip: paste a URL, or write [label](https://example.com) for a clickable link (opens in a new tab).

Guest notice (Internet)

A popup when someone connects as a guest on Internet — typically what guests can and cannot do compared to a registered account. Dismissed with “I understand”, it stays hidden on that device until you edit it.

Languages and built-in texts

Each player sees the version matching their language (fallback below; missing languages are auto-translated on the client). Every language comes with a built-in text, shown pre-filled below: a language you edit replaces its built-in version, the others keep theirs.

Tip: paste a URL, or write [label](https://example.com) for a clickable link (opens in a new tab).

LAN / dedicated server notice

A popup when someone connects in LAN / dedicated mode on this instance — typically that it only dials one configured LAN server, and how to self-host for any other address. Dismissed with “I understand”, it stays hidden on that device until you edit it.

Languages and built-in texts

Each player sees the version matching their language (fallback below; missing languages are auto-translated on the client). Every language comes with a built-in text, shown pre-filled below: a language you edit replaces its built-in version, the others keep theirs.

Tip: paste a URL, or write [label](https://example.com) for a clickable link (opens in a new tab).

Registered-account notice (Internet)

The guest popup’s mirror, for players who log in with a registered account on Internet. Dismissed with “I understand”, it stays hidden — the acknowledgement follows the account across devices — until you edit it.

Languages and built-in texts

Each player sees the version matching their language (fallback below; missing languages are auto-translated on the client). Every language comes with a built-in text, shown pre-filled below: a language you edit replaces its built-in version, the others keep theirs.

Tip: paste a URL, or write [label](https://example.com) for a clickable link (opens in a new tab).
Loading…

Create a table

Starting values of the “create a table” form, within the limits of that form. A returning player keeps their own last settings; a blank field keeps the app default, which depends on the mode. Players can change everything per table.

Max players (2–10)
Small blind (5–20000)
Starting stack (1000–1000000)
Action timer (seconds, 5–60)

Table name, per mode

Automatic keeps the translated “X’s table”; Custom sets a fixed name (max 48 characters). Players can still rename their table.

Internet
LAN
Training

Lobby clock

The server time in the lobby status bar of pokerth.net players, so they know when BBC, WEC and Monthly Cup games start. Set it to the zone community events are announced in (pokerth.net: Berlin). Applies immediately.

Where the time comes from

The PokerTH protocol carries no time, so the instant comes from this server and the zone from the setting below. Default uses SERVER_TZ if set, else Berlin (Europe/Berlin), like the desktop client. Players can hide the clock in their advanced options.

Time zone

Events tab

The Events tab of the Forum news window: upcoming BBC games and Monthly Cup, the latest results, and the Champions of the Day above the PokerTH ranking. Off, players see neither.

How the community sites are read

The proxy is the only reader: one round reads the five community pages (bbc, wec, monthlycup, pokerth.net) and every player is served from that one copy; an expired copy is served at once while the next round runs, and a round where every site failed keeps the previous answer and is not retried for a minute. Turned off, the proxy reads nothing.

Refresh every (seconds, 60–3600)

At most one round per interval for the whole server, and only while someone looks at the tab.

Loading…

First-visit preferences

What a visitor gets before choosing anything. Each setting is applied once, on the first visit, and only if the player has not set it already.

Look

Palette
Table style
Card deck
Seats
Interface size
High contrast

Tables, decks and seats: the built-in ones and the packs installed under Content › Packages (a hidden pack is not offered).

Settings

Sound
Vibration
Voice announce
Hand-strength assistance
Chip display

Spectator view (/live)

The embedded spectator page has no Advanced options for a visitor to fall back on, so it gets its own defaults. A visitor who already chose keeps their choice — except the chat strip, which is an operator decision.

Style
Sound
Lobby chat strip
Loading…

Feature switches

Turn a feature off for everyone, right now, without a deployment — the way out when something ships broken. Each switch applies immediately.

What players see

Off forces the matching option off in every client: its checkbox in Advanced options goes unticked, frozen and labelled “off (admin)”. Players keep their own preference stored, so it takes effect again the moment the feature is back on. A client picks the change up when it next loads the page; what only runs at startup (splash screen, back-button guard) follows from the visit after.

Loading…
Loading…

Database mirror

Copies, when enabled, the daily traffic, the leaderboard and the broadcasts into tables of your database (traffic_daily, leaderboard, broadcasts), so they can be queried and joined. The JSON files stay the source of truth. Configure below (or with pokerth-web db-config on a native install).

Loading…
Type
Host
Port
User
Password
Database
Enabled
Loading…

Search engine visibility (SEO)

Off by default: pages say noindex and robots.txt blocks every crawler, so a self-hosted install stays out of Google and AI search engines. Turn it on only for a public instance you want indexed. Applies immediately.

What indexing adds

The page gains a description, Open Graph / Twitter cards, a canonical link, structured data (JSON-LD) and a crawler-readable summary, and robots.txt, sitemap.xml and llms.txt are generated from the public URL below.

Running the official instance? Fill in pokerth.net settings puts every field back to what webclient.pokerth.net uses. Nothing is written until you press Save.

What the preset sets

Indexing on, the public URL, PokerTH as the site name, AI crawlers allowed, and the branding overrides left empty so each language keeps its own translated title and description. Your Search Console, Bing and Yandex tokens are not touched — they belong to your accounts, not to the preset.

Search engine indexing
Public URL
Search Console token
Bing Webmaster token
Yandex token

Branding. Leave these blank on an official instance.

Why

The title and description are already translated into every interface language, and an override replaces the translation in all of them with the single line you write here. They exist so a self-hosted server can appear under its own name.

Site name
Title override
Description override
Social card image

AI crawlers. Allowed by default; Refused asks them to stay away.

What Refused does

It writes an explicit Disallow for GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot and the others, and llms.txt stops being served — staying silent under a blanket Allow reads as consent. It is a request, not a wall: well-behaved crawlers honour it, others do not.

AI crawlers
IndexNow keygenerated when indexing is enabled
Loading…

Create a delegate key

Give a third party access to only some sections. Pick a name and the categories they may manage. The full key is shown once at creation — copy it then. A lost key cannot be recovered (revoke and create a new one).

Name

Delegate keys

Loading…
Loading…

Audit log

Every action that changed something, and who did it — the master key or a named delegate key. Kept on disk.

What is not logged

Reads are not logged: the dashboard polls itself every few seconds and would drown everything. Tokens themselves are never recorded, only the name they carry. A restart does not erase the log.

Loading…
Loading…

Blocked & banned addresses

Addresses that failed to sign in to this panel, and those you banned — in full, since a masked address cannot be banned or unblocked. Your own address and loopback can never be banned.

What a ban does

A ban refuses the WebSocket upgrade — the page still loads, but no game connection is made through this proxy — and drops any bridge already open from it.

Failed sign-ins

Loading…

Banned

—
Loading…

Status

Loading…

Recent logs

Verbosity
Times are shown in your own time zone; the log files keep UTC. quiet logs connections, disconnections and errors only — no per-message line, so far less written to disk under load. Applied live, no restart.

      
Loading…

Proxy

Server-side bridge settings. Applies immediately.

Hosts allowed without being listed here

pokerth.net, www.pokerth.net, pthsrv.pokerth.net, localhost, 127.0.0.1, ::1, plus those of the ALLOWED_HOSTS variable, the registered game servers and the servers approved in the LAN directory — the full list is under Game servers › Effective dial allowlist.

Extra allowed hosts (one per line — needed for the forced host of the LAN / dedicated button)
Extra allowed ports (one per line — 1–65535; 7234 and 7236 are allowed unless the ALLOWED_PORTS variable says otherwise)
Session grace (seconds, 10–900)
Connection gap (ms, 0–30000)
Log verbosity (quiet = least CPU under load)
Max clients (concurrent bridges, 0 = unlimited)
Loading…

Maintenance

“Update (no restart)” pushes new client files live instantly without dropping connections; the other actions restart the server briefly — this page reconnects on its own.

Checks this server's branch every 15 minutes. An open connection is never cut this way.

When it acts

Changes that only touch client files go live at once — nobody is disconnected. Anything needing a restart (proxy, dependencies) waits until no one at all is connected, then acts after the notice below; if someone connects in the meantime, it is called off and retried later. Players connected outside a game (pokerth.net direct, training) get the usual restart notice. Cancelling an automatic restart leaves that version alone until a newer one is published.

Notice before a restart (seconds, 10–3600, saved on change)

Last action log


      

Schedule a restart

Warn connected players, then act automatically after the delay. Players see a dismissible notice with the restart time, in their own language.

Roll back a deployment

Every state this server has served, newest first. Static swaps the files without dropping anyone; with restart is what a change to proxy.js needs.

How a rollback works

Rolling back checks the chosen commit out again — the quickest way out when a deploy breaks the client. With restart also reinstalls dependencies, then restarts. The state you are on now is recorded first, so you can always come back forward. With Update automatically on, the version you stepped back from is left alone until a newer one is published (a fix, typically); an update made by hand goes forward at once.

Loading…
Loading…

Back up & restore settings

Every dashboard setting in one file. Restoring replaces the current settings.

What a backup holds, and what it leaves out

The dashboard settings: modes, defaults, branding, table settings, proxy, game servers, LAN directory, kill switches, bans, package and music choices, SEO. Not included: traffic figures, scheduled messages, polls, the audit log and the deployment history (each kept in its own file), delegate keys and database credentials (secrets — restoring a backup must not hand back access you thought you had revoked). The Discord webhook and the contact details of pending LAN requests are left out unless you tick the box; restoring a file without them keeps their current values. Restoring replaces the current settings.

Visit data

The anonymous visit counts are kept apart from the settings backup above: download them here, for safekeeping or to import into a database. CSV = one row per day (date, visits, unique, per-server connections). JSON = full backup (restorable to visits.json).

Loading…

Send a message now

Broadcast an information message to everyone currently connected. Shown as a gold dismissible banner.

Tip: paste a URL, or write [label](https://example.com) for a clickable link (opens in a new tab).

Schedule a recurring message

Tip: paste a URL, or write [label](https://example.com) for a clickable link (opens in a new tab).

Scheduled messages

Discord chat relay

Lobby chat messages sent through this proxy are posted to a Discord channel as Player: message. Leave blank to disable.

What is relayed

Official-server parity (DiscordChatWebhookUrl). Game chat and private messages are never relayed. One post per message — no duplicates however many clients are connected.

Webhook URL

Arrival notices

The welcome / rules message and the guest, LAN and registered-account notices open when a player arrives: they are set in Player experience › Login screen.

Loading…

Polls

Ask the players what to build next. One poll is live at a time: activating a poll retires the previous one.

What players see

The active poll opens in a window when a player reaches the lobby (unless they turned “Product polls” off in Advanced options); one answer per device. The counts stay hidden until they have answered, so the figures on screen cannot sway the vote.

Loading…

New poll

Loading…

Game servers

Where the Internet / PokerTH.net button of the login page connects. Three choices below — the banner always shows the result. The proxy is only a relay; it never runs the game server itself.

Loading…
1 · Which server? (source)
Serverlist URL
2 · How? (transport)
Embedded spectator mode (/live)
An install running beside the game server and one running on a separate machine rarely want the same answer here, which is why /live has its own setting.
3 · Registered servers — used in Manual; saving also allowlists host + port. “Check” tests the values on screen with the same TLS settings as a real game.
Source is Auto: the serverlist decides — “Active” below has no effect until you switch back to Manual.
Loading…

LAN / dedicated button

The server a player finds pre-filled behind the LAN / dedicated button of the login page — a default, never a lock. What the button lists, the “Local server” entry and manual address entry are in the next card.

Players’ own choice

Players can edit the fields, and the server they last joined is remembered. The Internet button is never affected.

Automatic, forced and the proxy URL

Automatic uses this page’s own address (port 7234, no TLS). Forced uses the host, port and TLS below; the proxy then follows that host and is rebuilt on every reconnect, so the client always reconnects. Only players who never picked a server of their own follow a change made here. A forced proxy URL (ws:// or wss://) is pushed to every client and locks the field; hiding the field removes it and its label from the login form.

Server
Host
Port (blank = 7234)
TLS
Proxy URL
Proxy URL field

LAN list on the login page

What the LAN / dedicated button lists, read from the LAN directory. The servers themselves are proposed and approved in Community › LAN directory.

Effective dial allowlist

Hosts & ports the proxy currently accepts to dial (built-in defaults + env + the servers above + the approved servers of the LAN directory). Anti-relay guard — shown for reference.

Loading…
Loading…

Arena — tournaments, cups, medalsbeta

Open the ArenaOrganizer page

The Arena is an application of its own (narmod/pokerth-arena). Link it with its address and the key it made: this web client then sends it the servers it may use and the community events, and /arena sends visitors to it.

How the link works

Only the Arena has an API; this web client exposes nothing for it and makes no key. On the Arena: /arena/organize › Web client (super admin) shows the link key. Here: its address (like https://arena.example.org, no path) and that key, then Test and save. This web client then sends the Arena, with the key, its public address (Admin › SEO, else the address you use now), the servers it may use (the LAN directory and the local server) every minute, and the community events every five minutes. The players’ witness reports from the table are relayed to the Arena’s API through this site. A new key on the Arena cuts the link until it is pasted here. Tournaments, cups, accounts and the Arena’s settings are managed on the Arena’s organizer page.

Arena address
Link key

Link with the ArenaLoading…
Loading…

Pending requests

Servers proposed from the login page (LAN › Propose my server). Approving adds one to every player’s LAN list and to the dial allowlist; the player gets no answer — the server appearing in the list is the answer.

What is kept, and what players see

The game-server registry is not touched. What the requester wrote for the admins (nickname, note, contact) is never shown to players; the contact is erased as soon as you approve or reject, the note becomes the server’s internal note. No IP is kept (only a salted hash, to count requests from one address over 30 days).

Loading…
Refused requests

Kept 180 days (50 at most) so you remember why: name, address, nickname and your reason — no contact, no note.

Published directory

Re-checked automatically (the greeting only: player count, no login). “Check” runs a full lobby probe, tables included. Unticking “Visible” keeps a server dialable by address but takes it off the list.

Loading…

Settings

Turn “Refuse private addresses” off only on a self-hosted LAN install. What the login page’s LAN button lists and pre-fills (offline servers, “Local server”, manual entry, the default server) is set in Infrastructure › Game servers.

Private addresses, Local server and manual entry

Refusing private addresses only makes sense off when this proxy runs on the same network as the servers. “Local server” is the address the LAN form used before the directory (the default login form, else this page’s host on port 7234): keep it on a self-hosted install, turn it off on pokerth.net. Manual entry lets a player type an address instead of picking one; addresses outside the allowlist are still refused.