Skip to content
nexdeck

nexdeck

The dashboard for your own server that moves by itself. The server asks every service in its own rhythm and pushes the change to every open browser. Ten open tabs cost a service one request. 79 integrations. Actions on the cards. Boards for the desk, the phone and the wall.

Free, open source under AGPL-3.0, self-hosted, one Docker container
A nexdeck board: clock, search, weather, Docker load, Pi-hole, what is playing on Plex, monitors, app tiles and feeds
Media

What is playing, what is there, what is on its way

Who is watching, how large the library is, which requests are still open, and the covers of what arrived last. Next to them the queues of Radarr, Sonarr and SABnzbd. One click on the card pauses a download.

Boards and cards
A media board: what is playing on Plex, the size of the library, open requests, a row of recently added covers, and the queues of Radarr, Sonarr and SABnzbd
Infrastructure

The same grid, a different question

Hosts, containers, pools, disks, certificates and what answers. A container is restarted on the card, a machine woken there, a log followed there.

Acting on it
An infrastructure board: Proxmox and Docker counts, Synology load, node and pool usage, containers, UniFi devices, disk temperatures, certificate expiry and reachability
On the wall

A tablet in the hallway, without a sign-in

A kiosk link opens exactly one board, without a sign-in, read-only unless you say otherwise. It cycles through the pages and dims at night. The token is handed in once at the door and never rides in an address afterwards.

Three screens
The same board as a kiosk display, without the top bar and without a sign-in

Runs on your machine. No account, no cloud, no service in between.

The first start offers a board with invented, moving data. You look around before you connect anything.

Why

Why another dashboard?

01

Most start pages for a home server are a list of links with icons. They say where something lives. They do not say whether it is running, how full it is, what is happening on it right now. You click through and go look yourself.

02

And what does move is usually polled by the browser. Five open tabs are then five times the requests against every service. In nexdeck the server asks, once, and pushes the result on to every browser.

03

When something turns red, you want to be able to do something about it. Restart a container, wake a machine, pause a download, approve a request, flip a light. On the card, not in another window.

79 integrations, plus building blocks for everything else
196 cards a board is built from
3 screens: desk, phone, wall
1 container, with no database beside it
Integrations

79 services, and building blocks for the rest

From Docker and Proxmox through Plex, Radarr and Pi-hole to Home Assistant, Immich and the FRITZ!Box. Whatever is missing, the JSON API card reads from any endpoint that hands out numbers.

  • Hosts and containers. Docker, Proxmox, Portainer, Synology, Unraid, TrueNAS, Glances, Beszel, Prometheus, Grafana.
  • Network. UniFi, MikroTik, FRITZ!Box, OPNsense, pfSense, Traefik, Nginx Proxy Manager, Pi-hole, AdGuard, Tailscale.
  • Media. Plex, Jellyfin, Emby, the whole arr chain, SABnzbd, qBittorrent, Seerr and Nexview.
  • Home and files. Home Assistant, Frigate, Reolink, evcc, Immich, Nextcloud, Syncthing, Paperless-ngx.

An integration that has not been confirmed against a live instance yet carries a beta badge in the interface. It stands next to every name on the integrations page, so nobody has to guess.

See all 79

Docker 31 / 33 running. Two stopped, none unhealthy.
Pi-hole 18.4 % blocked, 42,108 queries today.
Certificate 11 days left. Traefik has not renewed it yet.
Disk 2 errors Scrutiny reports pending sectors.
Getting started

One container, one file

No database beside it, no cache, no build step. The first start creates the administrator and offers a board with invented data.

Terminal
# Make a directory, fetch the compose file, start it
mkdir nexdeck && cd nexdeck
curl -fsSL https://raw.githubusercontent.com/DerKezorm/nexdeck/main/docker-compose.yml -o docker-compose.yml
docker compose up -d

nexdeck is then at http://your-host:5175. The Docker socket is already mounted in the compose file: that is how you see this host's containers, act on them and follow their logs.

Every setting and the reverse proxy

Limits

What it is not

A project that names its own gaps does not have to explain them later.

Not a monitoring system nexdeck shows states and tells you when something stops answering. It does not keep metrics for months, and it has no alert rules with thresholds and on-call rotations. If you need that, keep Prometheus and Grafana, and hang both on a card here.
Not a hosted service There is nothing to sign up for and nothing to buy. You start the container on your machine, and the credentials of your services stay there, encrypted in a file next to the database.
Not a replacement for the interfaces behind it A card shows what you want to know at a glance and offers the two or three moves you make afterwards. To clean up a library or write a firewall rule, you still go into Radarr and into OPNsense.
Not proven everywhere 33 of the 79 integrations are checked against a recorded answer, but not yet against a running instance. They carry a beta badge, and if one of them gets something wrong, that belongs in an issue with the service's version.