DA

DashMachine

Application dashboard for keeping services organized

Dashboards & Startpages ★ 1.3k stars Easy setup Unlicense

DashMachine is a self-hosted application dashboard for organizing and accessing your services. It supports widgets, platform integrations, and themes to build a personalized homelab landing page.

Key features

  • Application tiles and widgets
  • Platform integrations
  • Theming support
  • Search functionality

Pros & cons

Strengths

  • Flexible widget system
  • Simple deployment

Trade-offs

  • Development has slowed
  • Smaller community

DashMachine replaces

Last reviewed Sep 13, 2026 · 813 words

DashMachine development has slowed to the point where I would not start a new homelab on it. That is the honest first sentence, and the catalogue's "development has slowed" con is as accurate today as when it was written. The second sentence matters too: it still works, its config.ini model is the simplest of any dashboard I have run, and the 1,265 people who starred it include a fair number who have never found a reason to leave. This guide is for two readers, the one deciding whether to install it and the one deciding whether to stay.

The config.ini is the whole product

DashMachine is a Flask app, 128 MB of RAM, one container, one volume. Everything visible on the page comes from a single config.ini in the user_data directory, and editing it in the built-in editor or on disk redraws the dashboard. Each section is an app:

[Jellyfin]
prefix = https://
url = jellyfin.home.lan
icon = static/images/apps/jellyfin.png
description = Media
open_in = this_tab
tags = Media

Tags become filter buttons at the top. Collections group tiles. A [Settings] section sets the theme, the background, and a search bar that can be pointed at DuckDuckGo or your own SearXNG. There is no database and no API; a backup is a copy of one directory. For someone who wants 20 links on a page with icons, and who would rather edit a text file than click through a settings UI, this is the appeal, and it has not aged.

Platforms and widgets still do their job

The "platform" system is DashMachine's word for integrations. A tile can run a ping platform that greys out when the host is down, a docker platform that shows container state, or one of the app-specific ones for Sonarr, Radarr, Transmission, Plex and a handful of others that pull a number or a status into the tile. Each is a small Python file in the container, and the ones I have used in the last year still return data, because the APIs they call have not changed much either.

What you will not get is anything the maintainer did not write before activity slowed: no widget for newer services, no Kubernetes awareness, no live bandwidth graphs. Access groups, which restrict tiles per login, exist and work for a shared family dashboard.

Why people keep it

Three reasons, all reasonable. It is Unlicense, so it is public domain and nobody can relicense it out from under you. It has no moving parts to break on update, because there are no updates. And its look is distinctive: big square tiles, a tag bar, and a search box, without the widget-heavy density that Homepage and Homarr default to. If your dashboard is a launcher and nothing else, an unmaintained launcher that renders links is not a risk in the way an unmaintained reverse proxy would be.

The one real risk is the base image. A Python and Flask stack that no longer gets rebuilt accumulates known vulnerabilities in its dependencies. Keep DashMachine on the LAN or behind an authenticating proxy, never exposed on its own.

Migrating to Homepage takes an afternoon

The dashboard category has moved on, and the move is not painful. Homepage uses YAML files rather than an ini, with the same idea: a services.yaml listing groups and links, and a wide widget library that covers everything DashMachine's platforms did plus a few hundred more. Dashy is the closest in spirit if you like a single config file with a built-in editor, and Heimdall is the choice if you want even less configuration than DashMachine. Converting a config.ini of 30 apps into services.yaml is an hour of copying URLs and icon names. The icons are the pleasant surprise: Homepage pulls from the same community icon set, so jellyfin resolves without you uploading anything.

Running it today

If you do install it, use the rmountjoy/dashmachine image, mount a volume at /dashmachine/user_data, map port 5000, and log in with the default admin and admin credentials, which you change immediately. Put it behind your reverse proxy with TLS. Set the search bar, add your tiles, and turn on the ping platform for anything you care about seeing go red. That is the entire lifecycle; there is no upgrade step to plan for.

What I'd do

New dashboard, start on Homepage; it has the momentum, the widgets, and a maintainer who ships. Already on DashMachine and happy, keep it on the LAN and keep it, because a text-file launcher does not need a roadmap. The moment you want a widget it does not have, spend the afternoon on the migration rather than waiting for a release that the pace of the project says is not coming.

Compare DashMachine

7 head-to-head comparisons.

Similar dashboards & startpages apps