Skip to content

Wall mode

/wall shows the console’s own board, full screen, for a monitor that stays on in a room. It refreshes by itself and keeps the screen awake.

From the top:

  • the verdict in a few words (“All good”, “3 problems”) with the date and the clock, and when the data was last updated;
  • the five figures of the overview: monitors up, availability over 30 days, p95 response time, open alerts and mean time to resolve;
  • the health river, the large picture of the board: one strip per monitor, worst on top;
  • the open alerts, most severe first;
  • who is on call now, with the schedule and the end of the shift.

There are no widgets: black ground, the console’s own type, states written next to a shape and never by colour alone. Music, once set up, sits in a small dock at the foot of the right-hand column.

Open it with the Wall mode icon at the bottom of the left menu, from the command palette (“Wall mode”) or by typing the URL. ++esc++ or Exit returns to the console. An account limited to some teams or clients does not get the wall, since it shows the whole fleet.

The wall shares the console’s dark look. The Backdrop button (top right, next to Exit) can draw one of the status pages’ night cities behind the verdict and the clock: Paris, New York, Tokyo or Dubai, or Auto for the closest to the browser’s time zone. It is off by default and remembered per browser; ?city=paris (or newyork, tokyo, dubai, none) on a link chooses it for that display only. The sky follows the board: stars when all is well, clouds on an advisory, a storm on a warning. On a phone, or while the tab is hidden, the city holds still. A saved or linked zermatt now lands on Dubai.

The wall can also play music and show what is playing, so that you can start a playlist from your phone, hear it from the TV, and see it from across the room. Music sits in a small dock at the foot of the right-hand column, under the clock and the on-call rota: it never takes room from the verdict or the problems, and it disappears when nothing plays or nothing is set up. It shows the cover, the title, the artist, where it plays and a thin progress bar; when the connected account allows it, a play / pause button pauses or resumes the account wherever it plays (any signed-in session can, viewer accounts included, as with Play here). The shared link’s player and the speaker’s messages fold into a small pill (the display remembers it). The wall’s Music button, next to Backdrop and Exit, appears once music is set up.

There are two ways, and you can use both.

Spotify ConnectA link sent to the walls
Start it fromthe Spotify app on your phone (Devices → DumbMonit Wall)any DumbMonit screen, your phone included (Play on the wall)
ServicesSpotifySpotify, Deezer, YouTube and YouTube Music
NeedsSpotify Premium, a Spotify Developer app of your own, the phone on the same Spotify account, the wall served over HTTPS (or localhost) in a browser with DRMnothing; without being signed in on the wall, Spotify and Deezer play 30-second previews
Shows what playsyes, wherever it plays: the wall, a TV’s Spotify app, a cast speakerthe service’s own player

Connecting Spotify and sending links are admin actions; a viewer account on the wall plays and shows everything.

Spotify Connect: the wall becomes a speaker

Section titled “Spotify Connect: the wall becomes a speaker”

The goal: on your phone, open Spotify, tap the devices icon, pick the TV — the music plays on the TV while the wall shows what is playing. The wall does this with Spotify’s Web Playback SDK: the wall’s browser registers itself as a Spotify Connect device. That works only when all of these hold, and the wall tells you on its own screen which one is missing:

NeedsWhyWhen it is missing
Spotify Premium on the connected accountSpotify only lets Premium accounts use browser speakersthe wall shows Spotify Premium is required; Settings shows Premium: No
The phone signed in to the same Spotify accounta browser speaker is listed only for the account whose token it holds — it is not discovered on the network like a smart speaker, and other members of a Family plan do not see itthe phone simply does not list the wall
A trusted HTTPS pagebrowsers only allow protected media (DRM) in a secure page, and a certificate you have not accepted does not countthe wall shows opened over plain HTTP
A browser whose DRM works (Widevine, PlayReady or FairPlay)Spotify streams encrypted audiothe wall shows This browser cannot play Spotify
One tap or key press on the wall per page loadbrowsers keep a page silent until someone interacts with itthe wall shows Tap to enable sound

Which browsers work: Chrome, Edge and Firefox on a computer (Firefox: allow Play DRM-controlled content), Safari on a Mac, Chromium with Widevine on a Raspberry Pi (libwidevinecdm0). Most smart-TV browsers (Samsung Tizen, LG webOS), kiosk browsers and many Linux Chromium builds ship without a usable Widevine: they cannot be a Spotify speaker, whatever DumbMonit does. For such a TV, see When the TV’s browser cannot play Spotify.

  1. Create a Spotify app. Open the Spotify Developer Dashboard, create an app (any name), tick Web API and Web Playback SDK, and add the redirect URI that Settings → Wall music shows:
    • DumbMonit served over HTTPS: https://<your address>/api/music/spotify/callback. Spotify comes straight back to DumbMonit after you approve.
    • DumbMonit served over plain HTTP: http://127.0.0.1:8888/callback. Spotify accepts http:// only for a loopback address (and not localhost), since 2025. Nothing answers at that address: after you approve, your browser shows an error page whose address carries the code — copy it and paste it back into DumbMonit.
  2. Connect. In Settings → Wall music, paste the app’s Client ID (there is no secret: DumbMonit uses Authorization Code with PKCE) and choose Connect Spotify, then approve on Spotify with the account your phone uses.
  3. On the TV, open DumbMonit’s /wall over HTTPS, signed in (a viewer account is enough), and tap the screen or press OK on the remote once: any gesture unlocks the sound. A browser started with --autoplay-policy=no-user-gesture-required (a kiosk) needs no tap.
  4. On your phone, in the Spotify app, tap the devices icon and pick DumbMonit Wall. The sound comes out of the TV, and the wall shows the cover, title and progress.

Settings → Wall music → Speaker shows whether it all holds, without walking to the TV: the account, Premium, whether Spotify lists the speaker among the account’s devices right now (and which devices it lists), and every wall that reported in the last fifteen minutes — its browser (“Chrome 130 on Linux”), whether it is ready, and why not. Test sound makes the account play on the speaker (it resumes what played last); each ready wall has its own Test sound too. On the wall itself, the Music panel has Play here, which moves whatever plays on the account to this display.

The name. Rename the speaker in Settings → Wall music → Speaker (“Living room TV”); every wall picks the new name up within seconds. To name one wall alone, add ?speaker=Kitchen to its address — the display remembers it (?speaker= forgets it).

A wall stays on for days. The wall asks DumbMonit for a fresh token when Spotify’s expires (every hour); when the device drops out (Wi-Fi, a sleeping network card) and does not come back within thirty seconds, the wall registers it again; a passing failure is retried by itself (15 s, 30 s, … then every five minutes); and if Spotify stops listing the wall while it thinks it is ready, it registers again. Only what waiting cannot fix — no DRM, no Premium — stops for good, until Try again.

DumbMonit keeps the Spotify refresh token encrypted with the instance secret and never sends it to a browser. The wall only receives a short-lived access token for its player, and only through a signed-in session (an API token cannot get one). Disconnect forgets the account; to also remove DumbMonit from your Spotify account, use spotify.com/account/apps.

Also good to know:

  • A personal Spotify app (development mode) belongs to a Premium account and admits up to five accounts: add others under User Management in the dashboard.
  • Reconnect every six months. Spotify ends a connection six months after it was approved; Settings shows the date, and the wall says so when it happens.

Now playing works without any of that. DumbMonit’s server asks Spotify what is playing on the account every few seconds (one request for all walls) and the wall shows the cover, title, artist, progress and the device it plays on — the wall itself, the Spotify app of a smart TV, a Chromecast, your laptop — even over plain HTTP and in a browser that cannot play Spotify. To use that alone, switch off Use this display as a Spotify speaker in the wall’s Music panel.

When the TV’s browser cannot play Spotify

Section titled “When the TV’s browser cannot play Spotify”

Pick whichever matches your setup — in every case the wall keeps showing what plays, because now playing reads the account, not the speaker:

  • The TV has a Spotify app, or a Chromecast / Google TV / Fire TV stick. Pick that in Spotify’s device list; the wall shows “Playing on Living room TV”. This is the simplest and most reliable option.
  • A small computer drives the TV (a Raspberry Pi, a mini PC, an old laptop). Open the wall in Chrome or Chromium with Widevine on it: it becomes the speaker as described above.
  • You want a speaker that is always there, even without a browser. Run a Spotify Connect receiver based on librespot (MIT) — for instance raspotify or spotifyd — on the machine whose audio output reaches the TV or the speaker. It shows up in the phone’s device list for everyone on the network.

DumbMonit does not ship such a receiver itself, on purpose: the DumbMonit container usually runs on a server in a cupboard, not on the machine plugged into the TV, so its sound would come out of the wrong box; a receiver needs the host’s sound card and host networking (multicast DNS) that a monitoring container should not have; and librespot depends on unofficial Spotify protocols that break from time to time. A receiver installed on the right machine, next to DumbMonit, does the job better.

In Settings → Wall music (or the wall’s own Music panel), paste a Spotify, Deezer or YouTube link to a track, album, playlist, episode or video and choose Play on the wall. Every wall plays it in the service’s official embedded player; a link sent while a wall is open starts by itself where the service allows it (YouTube, Deezer) once the wall has been tapped. Stop removes it from every wall.

Deezer and YouTube have no Spotify Connect equivalent that a web page can use — Deezer no longer accepts new developer apps and its API never exposed what is playing — so a link is the way for them. The embedded players play 30-second previews unless the wall’s browser is signed in to the service.

Nothing third-party loads on the wall until Spotify is connected or a link is set. The page’s content security policy allows exactly the three embedded players, Spotify’s player script (sdk.scdn.co/spotify-player.js) and its frame, and covers from i.scdn.co — nothing else, and nothing outside the web interface.

The interface’s permissions policy lends autoplay and protected media (DRM) to those players only; public status pages get neither.

RouteWhoWhat
GET /api/music/nowany session or tokenWhat plays on the Spotify account (cached a few seconds) and the link the walls play
PUT /api/music/link {"link": "…"}adminEvery wall plays this link
DELETE /api/music/linkadminThe walls stop the embedded player
GET /api/music/spotifyany session or tokenThe connected account: status, Client ID, reconnect-by date — never a token
POST /api/music/spotify/authorizeadmin sessionStarts a connection: {"client_id", "redirect_uri"} → Spotify’s approval URL
POST /api/music/spotify/complete {"url": "…"}admin sessionFinishes a loopback connection with the address the browser landed on
GET /api/music/spotify/callbackthe admin’s browserSpotify’s direct redirect (HTTPS installs): hands the code to the Settings page, which finishes the connection under its session
DELETE /api/music/spotifyadminDisconnects and forgets the tokens
GET /api/music/spotify/tokenbrowser session onlyA short-lived access token for the wall’s player
GET /api/music/speakerany session or tokenThe speaker: name, Premium, the account’s Spotify Connect devices, whether the speaker is listed, what each wall reported
PUT /api/music/speaker {"name": "…"}adminRenames the speaker (null goes back to “DumbMonit Wall”)
POST /api/music/speaker/reportbrowser session onlyA wall reports its speaker (sent every minute); the reply says whether Spotify lists it
POST /api/music/speaker/play {"device_id": "…"}browser session onlyPlays the account on that device, or on the device named like the speaker (“Test sound”, “Play here”)
POST /api/music/spotify/playback {"playing": false}browser session onlyPauses (false) or resumes (true) the account wherever it plays; can_control in GET /api/music/now says whether it is allowed