Product Introduction
- Definition: Holm is a self-hosted, multi-user dashboard and application launcher built with SvelteKit. It functions as a personalized start page for teams, families, or organizations that share a common server infrastructure.
- Core Value Proposition: Holm exists to democratize access to self-hosted services. It solves the problem of single-admin dashboards by providing a personalized, user-centric interface where each individual can customize their own layout, apps, and search, all authenticated through existing enterprise Single Sign-On (SSO) like Authelia or Authentik.
Main Features
- Multi-User Personalization: Each user gets a completely independent dashboard experience. Their app grid layout, bookmarks, chosen theme (auto/light/dark), icon style, and wallpaper are stored server-side in a built-in SQLite database and synchronized across all their devices. The admin curates a central catalog of available applications.
- Integrated Universal Search & Launcher: Holm features a global search bar (accessible via
Cmd+K/Ctrl+K) that acts as both an app launcher and a federated search engine. It can search inside connected applications like Immich, Jellyfin, Paperless-ngx, and CalDAV calendars using the user's own encrypted credentials, returning unified results. - SSO-First Authentication & Granular Access Control: Holm integrates natively with OpenID Connect (OIDC) providers such as Authelia, Authentik, Keycloak, and Zitadel. Administrators can define app visibility using
groups:in the YAML configuration, ensuring users only see applications they are authorized to access, leveraging existing identity management. - Comprehensive App Integration Ecosystem: Beyond simple bookmark tiles, Holm offers deep "search integrations" for over 15 popular self-hosted apps. These adapters allow the universal search to query the app's API directly (e.g., finding photos in Immich, documents in Paperless, or media in Jellyfin/Plex). It also supports setup guides and PWA installation prompts per app.
- Configuration-Over-UI Administration: The entire system is configured via a single
config.ymlfile. This includes app definitions, branding, OIDC settings, and feature toggles. Most changes are hot-reloaded, promoting infrastructure-as-code practices and eliminating the need to maintain a separate admin UI.
Problems Solved
- Pain Point: The complexity and technical barrier for non-admin users (family members, team colleagues) to access and navigate a suite of self-hosted applications. Traditional dashboards (e.g., Homarr, Dashy) are often configured by and for a single administrator.
- Target Audience: System administrators or homelab enthusiasts who manage services for a group; families sharing media servers, photo libraries, and documents; small teams or organizations using internal tools like Planka (task boards), Paperless (document management), or Nextcloud.
- Use Cases: Providing a clean, personalized homepage for a household where each member has their own Immich, Jellyfin, and calendar widgets; serving as a unified internal portal for a team to access project management (Planka), documentation, and media resources; acting as a secure, branded launchpad for client-facing services.
Unique Advantages
Strengths & Limitations (Pros & Cons):
- Pros:
- True Multi-Tenancy: Unique focus on per-user customization, not just shared or per-group dashboards.
- Privacy-Focused: No telemetry; can be configured to have zero external network calls.
- Lightweight Deployment: Single Docker container with embedded SQLite, no external database required.
- Powerful Federated Search: Deep integration with app APIs for a seamless user experience.
- SSO Native: Leverages existing identity infrastructure, reducing password fatigue and centralizing control.
- Cons:
- No Server Monitoring: Deliberately lacks features like system stats, container health, or uptime widgets, which may require a separate admin dashboard.
- Configuration Complexity: Requires editing YAML files for setup and management, which has a learning curve compared to GUI-based admin panels.
- Self-Hosted Only: No cloud/SaaS offering; requires user to manage hosting, updates, and security.
- Pros:
Key Alternatives & Differentiation:
- Homarr / Dashy: These are highly customizable dashboard builders with user management. However, they are typically admin-centric: the admin creates and manages dashboards or sections that are then assigned to users or groups. Holm user-centric: the admin provides a catalog, and each user builds their own dashboard from it.
- Heimdall / Homepage: These are excellent simple application dashboards, but they are single-user and static. Everyone visiting the instance sees the same page. Holm fundamentally differs by requiring login and providing a unique, persistent experience per user.
- Organizr: Closer in spirit with multi-user support and a focus on media, Organizr is more of a portal/aggregator. Holm differentiates with its modern SvelteKit interface, universal search that queries inside apps, and a stronger emphasis on individual customization and onboarding for non-technical users.
Frequently Asked Questions (FAQ)
- Does Holm require a separate database server? No. Holm uses a built-in SQLite database stored within its Docker volume (
/app/data), making it a single-container deployment with no external dependencies. - Can Holm be used without an SSO (Single Sign-On) provider? Yes. Authentication can be disabled by setting
auth.enabled: falsein the configuration, turning Holm into a single-user, non-authenticated dashboard for personal use. - How does Holm handle user credentials for integrated searches (e.g., Jellyfin, Immich)? User credentials for integrated apps are encrypted with a server-side
HOLM_SECRET_KEYand stored per-user in the SQLite database. They are never exposed in the frontend and are only used server-side to perform API queries on the user's behalf. - Is Holm suitable for large organizations or enterprises? Holm is best suited for small to medium-sized teams, families, or communities (likely up to tens or low hundreds of users). Its use of SQLite and single-container architecture prioritizes simplicity over the horizontal scalability and high availability typically required by large enterprises.
- What happens if my configuration YAML file has an error? Holm performs validation on startup. If the
config.ymlis missing, invalid, or references an unset environment variable, the container will fail to start and log a descriptive error message, preventing runtime misconfiguration.
