Homepage is a static, secure, and highly customizable application dashboard designed for self-hosted environments. It aggregates your services—like Radarr, Sonarr, Plex, and Docker containers—into a single, elegant startpage that loads instantly. Built with Next.js and React, it generates static HTML at build time for optimal performance while proxying all API calls to keep your credentials secure. Ideal for developers and sysadmins managing multiple self-hosted applications, it eliminates the need to bookmark dozens of URLs by centralizing access with real-time status updates and service discovery. The tool is designed for ease of use via YAML configuration or Docker labels, with full internationalization and theming support.
Unlike traditional startpages that rely on client-side JavaScript or expose API keys directly, Homepage proxies all backend requests and enforces strict host validation to prevent unauthorized access. It’s not just a dashboard—it’s a secure, production-ready portal for your home server or private cloud infrastructure.
What You Get
- Static Site Generation - Homepage builds entirely static HTML at build time, ensuring near-instant load times and reduced server resource usage.
- Docker Service Discovery - Automatically detects and adds containers to your dashboard using Docker labels; no manual configuration needed for supported services.
- 100+ Service Integrations - Pre-built widgets for Radarr, Sonarr, Lidarr, Plex, Jellyfin, Tautulli, qBittorrent, Transmission, NZBGet, SABnzbd, and more.
- Secure API Proxying - All backend service calls are proxied through Homepage, preventing exposure of your API keys to the client browser.
- Full i18n Support - Translations available in over 40 languages, with community-driven localization via Crowdin.
- Custom Themes and CSS/JS - Override styles, inject custom JavaScript, or create entirely new layouts using the configuration system.
- Information Widgets - Display real-time weather, time, date, and search functionality directly on the dashboard without external redirects.
- YAML Configuration & Docker Labels - Configure everything via simple YAML files or leverage Docker labels for automatic service discovery.
- Multi-Architecture Support - Official Docker images available for both AMD64 and ARM64 architectures, perfect for Raspberry Pi or NAS devices.
Common Use Cases
- Building a self-hosted media hub - Centralize access to Plex, Jellyfin, Radarr, Sonarr, and Tautulli with live status indicators and quick-launch buttons—all behind a secure reverse proxy.
- Managing a home server with Docker containers - Automatically discover and display status of nginx, Portainer, Watchtower, and other containers using Docker labels without manual config updates.
- Problem: Too many bookmarks → Solution: One secure dashboard - Instead of juggling 20+ browser tabs for different self-hosted apps, Homepage consolidates them into a single, searchable, password-protected startpage accessible from any device.
- Team workflow for DevOps engineers - Teams use Homepage to monitor service health across multiple servers, with real-time container stats and integrated alerts for failed services.
Under The Hood
The Homepage project is a modular, component-driven web application built with Next.js, emphasizing extensibility and internationalization. It provides a dashboard framework that supports widget-based customization and deep integration with diverse service types, making it suitable for complex infrastructure monitoring and management.
Architecture
This project adopts a monolithic architecture with a strong emphasis on modularity and component-based design, leveraging the Next.js framework for rendering and routing.
- The codebase is organized into distinct layers with clear separation of concerns between UI, configuration, and integration logic
- Middleware patterns are consistently applied for request handling and context management
- Design patterns such as providers and error boundaries ensure scalable and maintainable code structure
Tech Stack
Built using JavaScript and TypeScript, the project utilizes Next.js as its core framework to deliver React-based web experiences with server-side rendering and static site generation.
- The tech stack includes i18next for internationalization, SWR for data fetching, and Tailwind CSS for styling
- Development tools such as pnpm, PostCSS, and Vitest support efficient development and testing workflows
- The project integrates extensive libraries for UI components, API handling, and service abstraction
Code Quality
This project demonstrates a mature development approach with consistent error handling and comprehensive test coverage across core functionalities.
- A robust testing framework ensures validation of UI components, API endpoints, and localization support with extensive test suites
- Error handling is implemented through consistent try/catch blocks and graceful degradation mechanisms
- Code follows naming conventions and architectural patterns, with standardized configuration and internationalization practices
- Some legacy code patterns and multiple translation files suggest ongoing efforts to modernize and expand global support
What Makes It Unique
This project distinguishes itself through its widget-driven architecture and deep integration capabilities across various service types.
- The widget system enables both pre-built and custom components with extensive internationalization support for dynamic UI adaptation
- A sophisticated proxy layer handles diverse API protocols (REST, GraphQL, JSON-RPC) with unified error handling and fallbacks
- Kubernetes integration is achieved through custom API abstractions, enabling deep infrastructure monitoring without external tools
- The project enhances developer experience with comprehensive documentation, testing coverage, and a defined contribution workflow