A Browser Startpage That Gets Out of Your Way
Dasherr is a lightweight, self-hosted startpage that replaces your browser’s default new tab with a clean grid of app shortcuts, bookmarks, and widgets – no accounts, no telemetry, no subscription required. If you run a home server and want a fast way to access your self-hosted services from any browser on your network, Dasherr delivers exactly that without any of the overhead that heavier dashboard tools carry.

What Dasherr Is and Why It Works
Most browser startpages either do too little or demand too much. Built-in browser homepages are sparse and poorly organized for people managing multiple self-hosted services. Meanwhile, full dashboard platforms like Heimdall or Organizr bundle in user management, themes engines, and plugin systems that take real time to configure. Dasherr occupies a different position: it is a single HTML file with a configuration layer, designed to load instantly and stay focused on navigation.
The project is built entirely on static files. There is no database, no backend server to maintain, and no persistent state. Your apps and links live in a apps.json file that Dasherr reads on load. That architecture means setup is genuinely fast, and there is almost nothing that can break. Even running it under Docker adds only a minimal nginx layer to serve those static files over HTTP.
Dasherr supports a small but practical set of widgets – clock, weather, search bar, and a greeting. It also reads favicons automatically from URLs, so your shortcut grid fills in cleanly without manual icon hunting. The visual result is a tile-based layout that scales well on both desktop and tablet screens, though it is not optimized for mobile use as a primary interface.
The tool is particularly well-suited for people already running a home server stack. If you use something like Unraid as a home NAS and media server, Dasherr becomes a natural front door – one URL that points to everything else running on your network, organized the way you actually use it.

How to Set Up Dasherr With Docker
Docker is the fastest path to a working Dasherr instance. You will need Docker and Docker Compose installed on your host machine. Create a new directory for the project – something like /opt/dasherr or wherever you keep your container configs – and inside it create a docker-compose.yml file. The official image is hosted on GitHub Container Registry under ghcr.io/erohtar/dasherr. A basic Compose file maps port 4005 on the host to port 80 inside the container and mounts a local data directory to /www/data in the container. Set a restart policy of unless-stopped so the service survives reboots without manual intervention. Run docker compose up -d and the container pulls the image and starts within seconds.
Once the container is running, navigate to http://your-server-ip:4005 in a browser. Dasherr loads a default layout immediately – no login screen, no wizard. The first thing you will want to do is open the settings panel, which is accessible from the gear icon in the top right corner. This is where you configure the page title, background color or image, widget visibility, and the search engine tied to the search bar.
Adding apps is done through the settings panel’s Apps section. Each entry takes a name, URL, and optionally a category and icon. If you leave the icon field blank, Dasherr will attempt to pull the favicon from the URL you provide. Categories let you group shortcuts visually – you might separate “Media” apps like Jellyfin and Navidrome from “Tools” like Portainer and Vaultwarden. The layout reorders itself automatically based on categories, so there is no manual drag-and-drop required.
The apps.json file in your mounted data directory is where all of this configuration is stored. You can edit it directly in a text editor if you prefer working outside the browser UI, which is useful when migrating a config between machines or version-controlling your setup. The schema is straightforward JSON with an array of app objects. Keep a backup of this file – it is the only thing you need to restore a full Dasherr setup.
For weather widgets to work, you will need a free API key from OpenWeatherMap. Paste that key into the Weather settings field along with your city name or coordinates. The clock and greeting widgets require no external data. If you want Dasherr accessible across your whole network rather than just from the host machine, confirm your server’s firewall allows inbound connections on port 4005, or reverse proxy it behind Nginx or Caddy on port 80 or 443 with a local domain.

Customization and Keeping It Current
Dasherr ships with a handful of built-in color themes selectable from the settings panel, and it supports custom CSS if you want to go further. Drop a custom.css file into your data directory and Dasherr will load it automatically – no rebuild, no restart needed. This gives you full control over fonts, spacing, tile borders, and background gradients without touching the core application files.
Updating Dasherr means pulling the latest image with docker compose pull followed by docker compose up -d. Because your configuration lives in the mounted data directory rather than inside the container, updates never touch your app list or settings. The project is actively maintained on GitHub, and release notes are worth checking before updates since the settings schema occasionally changes between versions – a field name in apps.json may be renamed, which would cause certain entries to render incorrectly until corrected. That is the one rough edge worth watching.
Frequently Asked Questions
Does Dasherr require a database or backend server?
No. Dasherr runs entirely on static files. All configuration is stored in a single apps.json file with no database required.
Can I access Dasherr from other devices on my network?
Yes. Once running on your server, any device on the same network can access Dasherr via the server’s IP address and the configured port.





