homepage

gethomepageGPL-3.0活跃维护 有专家点评

高度可定制的自托管起始页和应用仪表盘,通过 Docker 和服务 API 集成,把常用服务入口和运行状态集中展示在一个页面上。

A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.

v2.7.0发布于 2026-10-23 15:10 UTC33,605star +53 / 7 天2,167fork同步于 2026-11-11 05:20 UTC

专家点评

上手难度:进阶更新于 2026-11-11

自托管服务的统一入口页,用 YAML 或 Docker 标签把散落的面板收成一张

适用场景

  • 家里或小团队跑了十几二十个自托管服务(*arr 套件、监控、网盘、CI),需要一页看到全部状态:它的 service widget 直接打各服务 API 拿健康度和计数,比逐个开标签页或自己写静态书签页省事。
  • 不想把 API key 散在前端:它把所有后端请求走服务端代理,浏览器只拿到渲染后的结果,这点是纯静态 dashboard 做不到的。
  • 容器频繁增删的环境:挂 docker.sock 后靠 label 自动发现服务,新起一个容器打个标签就出现在首页,不用回头改配置。
  • 需要给非技术用户(家人、同事)一个入口:主题和布局可调,能藏掉不想暴露的服务。

踩坑

  • 必须设 HOMEPAGE_ALLOWED_HOSTS,不设或写错域名会直接访问异常;换域名、加反代、内网外网双入口时都要同步改,这是最常见的启动即失败点。
  • 挂载 docker.sock 等于把宿主机 Docker 控制面交给这个容器,README 自己要求前面加认证反代或 VPN;只在内网裸跑、又暴露到公网的部署方式会撞上。
  • issue 里反复出现的是 widget 覆盖缺口(Deluge、audiobookshelf、Sonarr 日历、CPU 温度、uptime 等),说明内置集成虽多但长尾服务得自己写 custom API widget;另外有一条 semver 解析报错的 bug 讨论量不小,容器镜像 tag 策略异常时可能碰到。

同类对比

同类可看 Homarr、Dashy、Heimdall;如果核心诉求只是静态书签页、不需要服务端代理和 API 集成,Dashy 这类纯前端方案部署面更小。

怎么上手

由 README 提炼,执行前请确认
docker run --name homepage -e HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev -p 3000:3000 -v /path/to/config:/app/config -v /var/run/docker.sock:/var/run/docker.sock:ro --restart unless-stopped ghcr.io/gethomepage/homepage:latest
硬件要求按 README 说明

README 未说明具体硬件要求;仅说明提供 AMD64 和 ARM64 架构的镜像。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

高度可定制的应用仪表盘,用 YAML 或 Docker 标签聚合自托管服务与书签

高度可定制的自托管起始页和应用仪表盘,通过 Docker 和服务 API 集成,把常用服务入口和运行状态集中展示在一个页面上。

核心能力

  • 用 YAML 文件或 Docker 标签自动发现并配置服务
  • 代理所有后端 API 请求,隐藏 API 密钥
  • 内置 100+ 服务集成与天气、时间、搜索等信息组件
  • 支持自定义主题、CSS/JS 与布局
  • 提供 AMD64 与 ARM64 镜像,支持 40+ 语言

容易踩的坑

必须设置 HOMEPAGE_ALLOWED_HOSTS,否则可能无法正常访问;需先创建本地配置目录并挂载到 /app/config;Docker 集成需挂载 docker.sock,且对外暴露时应置于带认证的反向代理或 VPN 之后。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.7.0
  1. v2.7.0最新正式版2026-10-23 · 2026-10-23 15:10 UTC

    What's Changed

    🚀 Features

    • Feature: add NetBird service widget (#7260)

    🐛 Fixes

    • Fix: prometheusmetric renders only the four metrics it queries (#7262)

    🧰 Maintenance

    • Chore: update base image to node 24 (#7277) @shamoon
    • Chore: Remove k3d development setup (#7276) @shamoon
    • Chore(deps): Bump ip-address from 10.7.2 to 10.7.4 (#7274) @dependabot[bot]
    • Chore(deps): Bump next from 16.3.8 to 16.4.1 (#7275) @dependabot[bot]
    • Chore(deps): Bump astral-sh/setup-uv from 10.2.0 to 10.3.0 (#7273) @dependabot[bot]
    • Chore(deps): Bump follow-redirects from 1.16.0 to 1.16.1 (#7269) @dependabot[bot]
    • Chore(deps): Bump vite from 8.2.1 to 8.3.4 (#7267) @dependabot[bot]
    • Chore(deps): Bump js-yaml from 5.4.3 to 5.5.0 (#7268) @dependabot[bot]
    • Chore: migrate nextjs middleware to proxy (#7264) @shamoon

    🌐 Translations

    • New Crowdin translations by GitHub Action (#7259) @github-actions[bot]
    • Feature: add NetBird service widget (#7260) @tobee89
  2. v2.6.02026-10-17 · 2026-10-17 05:33 UTC
    查看更新说明

    What's Changed

    🐛 Fixes

    • Refactor: auth architecture (#7256) @shamoon
    • Fix: preserve dollar sequences in environment and file secrets (#7242) @anirudhqwerty

    🔒 Security

    • Resolve GHSA-qxcr-4rv3-v23r

    🧰 Maintenance

    • Refactor: auth architecture (#7256) @shamoon
    • Chore(deps): Bump release-drafter/release-drafter/autolabeler from 7.8.0 to 7.10.0 (#7248) @dependabot[bot]
    • Chore(deps): Bump release-drafter/release-drafter from 7.8.0 to 7.10.0 (#7250) @dependabot[bot]
    • Chore(deps): Bump actions/setup-node from 7.0.0 to 7.1.0 (#7249) @dependabot[bot]
    • Chore: send Gitea/Forgejo API key as Authorization header (#7245) @Blacks-Army

    🌐 Translations

  3. v2.5.02026-10-10 · 2026-10-10 18:31 UTC
    查看更新说明

    What's Changed

    🚀 Features

    • Chorehancement: add fileflows widget v2 for 26.10 breaking changes (#7239) @shamoon
    • Chorehancement: limit log size + rotate (#7218) @shamoon
    • Feature: Bookorbit service widget (#7202) @shamoon
    • Feature: qui widget (#7192) @Kisnov
    • Feature: feeds widget (#7170) @shamoon
    • Feature: Plex mono font support, card + block styles (#7169) @shamoon
    • Feature: customapi info widget (#7168) @shamoon

    🐛 Fixes

    • Fix: use x-total-count header for correct gitea totals (#7227) @shamoon
    • Fix: ensure correct relative dates formatter uses calendar days (#7174) @shamoon

    🧰 Maintenance

    • Chore: remove custom Vitest JSX esbuild config (#7234) @shamoon
    • Chore(deps): Bump source-map-js from 1.2.1 to 1.2.2 (#7229) @dependabot[bot]
    • Chore(deps): Bump sharp from 0.35.4 to 0.35.5 (#7228) @dependabot[bot]
    • Chore(deps): Bump http-cache-semantics from 4.2.0 to 4.3.0 (#7231) @dependabot[bot]
    • Chore(deps): Bump js-yaml from 5.4.2 to 5.4.3 (#7230) @dependabot[bot]
    • Chore(deps): Bump next from 16.3.6 to 16.3.8 (#7232) @dependabot[bot]
    • Chore(deps): Bump release-drafter/release-drafter/autolabeler from 7.6.0 to 7.8.0 (#7226) @dependabot[bot]
    • Chore(deps): Bump release-drafter/release-drafter from 7.6.0 to 7.8.0 (#7225) @dependabot[bot]
    • Chore: handle cloudflare breaking API change dropping connections (#7217) @shamoon
    • Chore(deps): Bump crowdin/github-action from 3.1.0 to 3.3.0 (#7204) @dependabot[bot]
    • Chore(deps): Bump astral-sh/setup-uv from 10.1.0 to 10.2.0 (#7203) @dependabot[bot]
    • Chore(deps): Bump @grpc/grpc-js from 1.14.4 to 1.14.5 (#7212) @dependabot[bot]
    • Chore(deps): Bump next from 16.3.3 to 16.3.6 (#7213) @dependabot[bot]
    • Chore(deps): Bump brace-expansion from 1.1.18 to 1.1.21 (#7211) @dependabot[bot]
    • Chore(deps): Bump react-i18next from 17.0.12 to 17.0.15 (#7207) @dependabot[bot]
    • Chore(deps): Bump the react group across 1 directory with 2 updates (#7205) @dependabot[bot]
    • Chore(deps): Bump systeminformation from 5.33.1 to 5.33.13 (#7206) @dependabot[bot]
    • Chore(deps): Bump i18next from 26.3.6 to 26.4.2 (#7209) @dependabot[bot]
    • Chore(deps-dev): Bump prettier from 3.9.6 to 3.9.9 (#7208) @dependabot[bot]
    • Chore(deps): Bump undici from 8.10.0 to 8.11.2 (#7200) @dependabot[bot]
    • Chore(deps): Bump ip-address from 10.5.0 to 10.7.2 (#7199) @dependabot[bot]
    • Chore(deps): Bump crowdin/github-action from 3.0.2 to 3.1.0 (#7183) @dependabot[bot]
    • Chore(deps): Bump codecov/codecov-action from 7.0.0 to 7.1.1 (#7184) @dependabot[bot]
    • Chore(deps): Bump docker/build-push-action from 7.3.0 to 7.4.0 (#7182) @dependabot[bot]
    • Chore(deps): Bump docker/setup-buildx-action from 4.3.0 to 4.4.1 (#7185) @dependabot[bot]
    • Chore(deps): Bump docker/setup-qemu-action from 4.3.0 to 4.4.0 (#7181) @dependabot[bot]
    • Performance: reduce json data transformations (#7175) @shamoon
    • Chore(deps): Bump astral-sh/setup-uv from 10.0.1 to 10.1.0 (#7156) @dependabot[bot]
    • Chore(deps): Bump crowdin/github-action from 3.0.1 to 3.0.2
  4. v2.4.02026-09-17 · 2026-09-17 07:17 UTC
    查看更新说明

    What's Changed

    🚀 Features

    • Enhancement: Add bearer authentication to whatsupdocker widget (#7134) @benbelov

    🐛 Fixes

    • Fix: prevent mcp operations losing var placeholders (#7144) @shamoon
    • Fix: better handle PeaNUT missing data (#7139) @shamoon

    🧰 Maintenance

    • Chore(deps): Bump js-yaml from 5.4.1 to 5.4.2 (#7147) @dependabot[bot]
    • Chore(deps): Bump sharp from 0.35.3 to 0.35.4 (#7146) @dependabot[bot]
    • Chore(deps): Bump crowdin/github-action from 3.0.0 to 3.0.1 (#7128) @dependabot[bot]
    • Chore(deps): Bump actions/deploy-pages from 5.0.0 to 5.0.1 (#7127) @dependabot[bot]
    • Chore(deps): Bump docker/setup-qemu-action from 4.2.0 to 4.3.0 (#7129) @dependabot[bot]
    • Chore(deps): Bump js-yaml from 5.4.0 to 5.4.1 (#7119) @dependabot[bot]

    🌐 Translations

  5. v2.3.02026-09-09 · 2026-09-09 21:54 UTC
    查看更新说明

    What's Changed

    🚀 Features

    • Fixhancement: use ghostfolio baseCurrency as default for net worth (#7116) @shamoon
    • Tweakhancement: handle QL selection without hover (#7105) @shamoon
    • Enhancement: render more docker states (#7099) @shamoon
    • Performance: use bulk request for docker stats (#7098) @shamoon
    • Enhancement: allow OIDC auto-login (#7096) @shamoon
    • Performance: fetch all docker container statuses in one request (#7092) @DaddyBoard

    🐛 Fixes

    • Fix: dont fire search on empty field (#7101) @shamoon
    • Fix: handle literal null from crowdsec api alerts (#7088) @shamoon

    🧰 Maintenance

    • Chore(deps): Bump crowdin/github-action from 2.17.1 to 3.0.0 (#7091) @dependabot[bot]

    🌐 Translations

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Features

    With features like quick search, bookmarks, weather support, a wide range of integrations and widgets, an elegant and modern design, and a focus on performance, Homepage is your ideal start to the day and a handy companion throughout it.

    • Fast - Cached dashboard data and optimized assets keep page loads quick.
    • Secure - All API requests to backend services are proxied, keeping your API keys hidden. Constantly reviewed for security by the community.
    • For Everyone - Images built for AMD64, ARM64.
    • Full i18n - Support for over 40 languages.
    • Service & Web Bookmarks - Add custom links to the homepage.
    • Docker Integration - Container status and stats. Automatic service discovery via labels.
    • Service Integration - Over 100 service integrations, including popular starr and self-hosted apps.
    • Information & Utility Widgets - Weather, time, date, search, and more.
    • And much more...

    Docker Integration

    Homepage has built-in support for Docker, and can automatically discover and add services to the homepage based on labels. See the Docker Service Discovery page for more information.

    Service Widgets

    Homepage also has support for hundreds of 3rd-party services, including all popular *arr apps, and most popular self-hosted apps. Some examples include: Radarr, Sonarr, Lidarr, Bazarr, Ombi, Tautulli, Plex, Jellyfin, Emby, Transmission, qBittorrent, Deluge, Jackett, NZBGet, SABnzbd, etc. As well as service integrations, Homepage also has a number of information providers, sourcing information from a variety of external 3rd-party APIs. See the Service page for more information.

    Information Widgets

    Homepage has built-in support for a number of information providers, including weather, time, date, search, glances and more. System and status information presented at the top of the page. See the Information Providers page for more information.

    Customization

    Homepage is highly customizable, with support for custom themes, custom CSS & JS, custom layouts, formatting, localization and more. See the Settings page for more information.

    Getting Started

    For configuration options, examples and more, please check out the homepage documentation.

    Security Notice 🔒

    Please note that when using features such as widgets, Homepage can access personal information (for example from your home automation system). To keep your information private, if Homepage is reachable from any untrusted network, it:

    1. must sit behind a reverse proxy (and/or VPN) that enforces authentication, TLS, and strictly validates Host headers.
    2. An optional built-in OIDC login flow or simple password login is available (opt-in) offering a simple “authenticated or not” guard.

    With Docker

    Using docker compose:

    services:
      homepage:
        image: ghcr.io/gethomepage/homepage:latest
        container_name: homepage
        environment:
          HOMEPAGE_ALLOWED_HOSTS: gethomepage.dev # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
          PUID: 1000 # optional, your user id
          PGID: 1000 # optional, your group id
        ports:
          - 3000:3000
        volumes:
          - /path/to/config:/app/config # Make sure your local config directory exists
          - /var/run/docker.sock:/var/run/docker.sock:ro # optional, for docker integrations
        restart: unless-stopped
    

    or docker run:

    docker run --name homepage \
      -e HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev \
      -e PUID=1000 \
      -e PGID=1000 \
      -p 3000:3000 \
      -v /path/to/config:/app/config \
      -v /var/run/docker.sock:/var/run/docker.sock:ro \
      --restart unless-stopped \
      ghcr.io/gethomepage/homepage:latest
    

    From Source

    First, clone the repository:

    git clone https://github.com/gethomepage/homepage.git
    

    Then install dependencies and build the production bundle:

    pnpm install
    pnpm build
    

    If this is your first time starting, copy the src/skeleton directory to config/ to populate initial example config files.

    Finally, run the server in production mode:

    HOMEPAGE_ALLOWED_HOSTS=gethomepage.dev:1234 pnpm start
    

    Configuration

    Please refer to the homepage documentation website for more information. Everything you need to know about configuring Homepage is there. Please read everything carefully before asking for help, as most questions are answered there or are simple YAML configuration issues.

    Development

    Install NPM packages, this project uses pnpm (and so should you!):

    pnpm install
    

    Start the development server:

    pnpm dev
    

    Open http://localhost:3000 to start.

    This is a Next.js application, see their documentation for more information.

    Documentation

    The homepage documentation is available at https://gethomepage.dev/.

    Homepage uses Zensical for documentation. To run the documentation locally, first install the dependencies:

    uv sync
    

    Then run the development server:

    uv run zensical serve # or build, to build the static site
    

    Support & Suggestions

    If you have any questions, suggestions, or general issues, please start a discussion on the Discussions page.

    Troubleshooting

    In addition to the docs, the troubleshooting guide can help reveal many basic config or network issues. If you're having a problem, it's a good place to start.

    Contributing & Contributors

    Contributions are welcome! Please see the CONTRIBUTING.md file for more information.

    Thanks to the over 200 contributors who have helped make this project what it is today!

    Especially huge thanks to @shamoon, who has been the backbone of this community from the very start.