Why Your Browser Start Page Deserves Better
Every time you open a new browser tab, you hand a small piece of attention to whatever that default page decides to show you. For most people, that means a search bar surrounded by sponsored shortcuts, news headlines curated by an algorithm, or a blank void that offers nothing useful. Dasherr is a self-hosted start page that puts you back in control – a clean, fast, icon-based dashboard that launches from your own server and connects to whatever services you actually use.
Dasherr is built for simplicity. There is no database to configure, no heavy backend framework, and no cloud account required. The entire application runs as a lightweight Docker container, reads from a single YAML configuration file, and renders a static-style dashboard that loads instantly. If you already run a home server or a VPS with Docker installed, getting Dasherr running takes under ten minutes.
The real advantage is ownership – your links, your layout, your icons, served from your own machine.

What You Need Before Starting
Dasherr has minimal requirements. You need a Linux host – physical, virtual, or a cloud VPS – with Docker and Docker Compose installed. The official Docker image is available on Docker Hub under kdpuvvadi/dasherr, and the project is actively maintained on GitHub. No domain name is required; you can access the dashboard over a local IP address, though pointing a subdomain at it through a reverse proxy like Nginx Proxy Manager or Caddy makes the setup feel considerably more polished.
You will also want a folder ready on your host to store the configuration file. Dasherr uses a single file called apps.yaml to define every tile on your dashboard – the app name, URL, icon, and category. That file lives in a directory you mount into the container, which means your configuration persists across container restarts and image updates without any extra steps. Create a directory like /opt/dasherr/config before you write your Compose file.
Icon handling is worth understanding before you start adding apps. Dasherr supports icons from the popular Walkxcode dashboard-icons pack, which covers hundreds of self-hosted applications by name. You reference an icon simply by its slug – for example, jellyfin or nextcloud – and Dasherr fetches it automatically. For anything not covered, you can supply a direct URL to any image file, including icons hosted on your own server.
Deploying Dasherr with Docker Compose
Create a file called docker-compose.yml in your working directory and add the following configuration:
- Image: ghcr.io/erohtar/dasherr:latest
- Container name: dasherr
- Ports: map host port 3005 to container port 80 (or choose any available host port)
- Volumes: mount your local config directory to /www/data inside the container
- Restart policy: unless-stopped
The full Compose block looks like this:
version: “3”
services:
dasherr:
image: ghcr.io/erohtar/dasherr:latest
container_name: dasherr
ports:
– “3005:80”
volumes:
– /opt/dasherr/config:/www/data
restart: unless-stopped
Run docker compose up -d from that directory. Docker pulls the image and starts the container in seconds. Open a browser and navigate to http://your-server-ip:3005. You will land on the Dasherr interface, which at this stage shows a default welcome state because your apps.yaml file does not exist yet – or is empty. That is expected.

Configuring Your apps.yaml File
The apps.yaml file is where all the actual customization happens. Dasherr organizes tiles into categories, and each category contains a list of apps. The structure is straightforward YAML – a top-level apps key, then a list of category objects, each with a name and an items list. Each item carries four fields: name, url, icon, and an optional newTab boolean that controls whether the link opens in a new browser tab.
A working minimal example for a home server setup might group services into categories like Media, Productivity, and Network. Under Media you might list Jellyfin (if you run a Jellyfin stack with Radarr and Sonarr), under Productivity you might include your note-taking app or file manager, and under Network you might add your router admin panel or Pi-hole. Each entry takes about four lines of YAML. Save the file, refresh your browser, and the tiles appear immediately – Dasherr reads the configuration on every page load, so there is no restart required when you make changes.
For theming, Dasherr supports a small set of color scheme options configurable through a settings.json file placed in the same config directory. You can set a dark or light base, choose an accent color, and adjust the grid column count. The settings file is completely optional – the defaults are clean and readable without any modification. If you want to go further with customization, the GitHub repository documents every available setting key with example values.
Putting It Behind a Reverse Proxy
Accessing the dashboard by IP and port works fine on a local network, but a reverse proxy gives you a proper URL, optional HTTPS, and the ability to restrict access if the server is internet-facing. Nginx Proxy Manager is the most common choice for Docker home server setups because it handles SSL certificate provisioning through Let’s Encrypt with a point-and-click interface. You point a subdomain – something like start.yourdomain.com – at your server’s IP, create a proxy host entry for port 3005, enable SSL, and the setup is done. Caddy is a leaner alternative that achieves the same result through a text-based Caddyfile if you prefer configuration-as-code.
If your server is not exposed to the internet at all and you only access it from inside your home network, you can skip the reverse proxy entirely and just set your browser’s new tab URL to the local IP address and port. Most browsers allow you to override the new tab page with an extension – New Tab Redirect for Chrome and Firefox is the most widely used option for this. Set the redirect target to your Dasherr URL and every new tab becomes your dashboard.
One practical consideration worth flagging: if you run Dasherr on a machine that is not always on, your new tab page will fail to load whenever that machine is off. Running it on a device with high uptime – a Raspberry Pi, a NAS, or a small VPS – avoids that frustration entirely.

Dasherr will not impress anyone looking for animated widgets, live system metrics, or weather integrations – those exist in heavier alternatives like Homarr or Heimdall. What Dasherr does is load fast, stay out of your way, and never require you to think about it after the initial setup. That is a harder feature to build than it looks.





