서비스 목록으로

Homepage

高度可定制的现代化首页仪表板,集成 Docker 和 100+ 种服务 API,提供统一的服务访问入口

Homepage 대안 보기
수정 제안
최근 리뷰

대안 서비스

기술 스택

보기 전용
이 서비스에는 아직 기술 스택 태그가 없습니다
💡 팁: 로그인하면 기술 스택 태그 추가 또는 수정을 제안할 수 있습니다

Homepage 是一个现代化、高度可定制的应用程序仪表板,支持Docker和100多种服务API集成。它提供快速、安全、美观的方式来组织和访问您的所有服务和信息。

主要功能

  • 快速加载:静态生成的网站,提供即时加载速度
  • 安全代理:所有API请求都经过代理,隐藏API密钥
  • Docker集成:容器状态监控和基于标签的自动服务发现
  • 丰富集成:支持100多种服务集成,包括所有流行的自托管应用
  • 多语言支持:支持40多种语言的完整国际化
  • 服务书签:添加自定义链接到首页
  • 信息小部件:天气、时间、日期、搜索等实用工具

服务集成

  • 媒体服务:Plex、Jellyfin、Emby等媒体服务器
  • 下载工具:Transmission、qBittorrent、Deluge等
  • *arr应用:Radarr、Sonarr、Lidarr、Bazarr等自动化工具
  • 网络工具:Ombi、Tautulli、Jackett、NZBGet、SABnzbd等
  • 系统监控:支持各种系统和服务状态监控
  • 自定义API:支持自定义API集成

技术特性

  • 前端框架:Next.js(React)
  • 样式系统:Tailwind CSS
  • 配置方式:YAML文件配置
  • 容器支持:原生Docker支持,多架构镜像
  • API代理:内置API代理确保安全性
  • 静态生成:构建时生成静态页面

部署要求

  • 运行环境:Node.js 18+ 或 Docker
  • 架构支持:AMD64、ARM64
  • 存储需求:配置文件存储,需求较小
  • 网络要求:访问各种服务API的网络连接
  • 可选依赖:Docker socket(用于容器集成)

安全考虑

  • 反向代理:建议部署在带认证的反向代理后面
  • API安全:所有API请求都经过代理处理
  • 无认证层:本身不包含认证功能,需要外部认证
  • SSL支持:建议使用HTTPS部署

Docker 部署示例

基础部署

version: "3.3"
services:
  homepage:
    image: ghcr.io/gethomepage/homepage:latest
    container_name: homepage
    ports:
      - 3000:3000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro # Docker 集成(可选)
      - ./config:/app/config # 本地配置目录
      - ./images:/app/public/images # 本地图片目录
    restart: unless-stopped

高级部署配置

version: "3.3"
services:
  homepage:
    image: ghcr.io/gethomepage/homepage:latest
    container_name: homepage
    environment:
      PUID: 1000
      PGID: 1000
    ports:
      - 3000:3000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./config:/app/config
      - ./images:/app/public/images
    restart: unless-stopped
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.homepage.rule=Host(`homepage.example.com`)"
      - "traefik.http.routers.homepage.tls=true"
      - "traefik.http.routers.homepage.tls.certresolver=letsencrypt"

配置示例

服务配置 (services.yaml)

- Web 服务:
    - Nextcloud:
        href: https://nextcloud.example.com
        description: 个人云存储
        icon: nextcloud.png
        widget:
          type: nextcloud
          url: https://nextcloud.example.com
          username: admin
          password: password

- 媒体服务:
    - Jellyfin:
        href: https://jellyfin.example.com
        description: 媒体服务器
        icon: jellyfin.png
        widget:
          type: jellyfin
          url: https://jellyfin.example.com
          key: your-api-key

    - Transmission:
        href: https://transmission.example.com
        description: BT 下载器
        icon: transmission.png
        widget:
          type: transmission
          url: https://transmission.example.com
          username: admin
          password: password

小部件配置 (widgets.yaml)

- logo:
    icon: https://raw.githubusercontent.com/gethomepage/homepage/main/docs/assets/light_squircle%402x.png

- search:
    provider: google
    target: _blank

- greeting:
    text_size: xl
    text: "欢迎回来!"

- datetime:
    text_size: xl
    format:
      timeStyle: short
      dateStyle: short
      hourCycle: h23

- weather:
    label: 北京
    latitude: 39.9042
    longitude: 116.4074
    provider: openweathermap
    apiKey: your-api-key

- resources:
    cpu: true
    memory: true
    disk: /
    expanded: true
    label: 系统资源

书签配置 (bookmarks.yaml)

- 开发工具:
    - GitHub:
        - href: https://github.com
          icon: github.png
    - Docker Hub:
        - href: https://hub.docker.com
          icon: docker.png

- 社交媒体:
    - Twitter:
        - href: https://twitter.com
          icon: twitter.png
    - Reddit:
        - href: https://reddit.com
          icon: reddit.png

高级特性

Docker 标签自动发现

# 容器标签示例
services:
  jellyfin:
    image: jellyfin/jellyfin
    labels:
      - homepage.group=媒体服务
      - homepage.name=Jellyfin
      - homepage.icon=jellyfin.png
      - homepage.href=http://localhost:8096
      - homepage.description=媒体服务器
      - homepage.widget.type=jellyfin
      - homepage.widget.url=http://localhost:8096
      - homepage.widget.key=your-jellyfin-token

自定义主题

/* custom.css */
:root {
  --color-50: 250 250 249;
  --color-100: 245 245 244;
  --color-200: 231 229 228;
  --color-300: 214 211 209;
  --color-400: 168 162 158;
  --color-500: 120 113 108;
  --color-600: 87 83 78;
  --color-700: 68 64 60;
  --color-800: 41 37 36;
  --color-900: 28 25 23;
}

自定义 JavaScript

// custom.js
document.addEventListener('DOMContentLoaded', function() {
    // 自定义功能实现
    console.log('Homepage 已加载完成');
});

支持的服务集成

媒体管理

  • Plex/Jellyfin/Emby:媒体服务器状态和统计
  • Tautulli:Plex 活动监控
  • Ombi/Overseerr:媒体请求管理

下载工具

  • qBittorrent/Transmission/Deluge:BT 下载状态
  • SABnzbd/NZBGet:Usenet 下载监控
  • Jackett/Prowlarr:种子索引器状态

Arr 家族

  • Sonarr/Radarr/Lidarr:媒体自动化管理
  • Bazarr:字幕管理
  • Readarr:电子书管理

系统监控

  • Proxmox:虚拟化平台监控
  • Unraid:NAS 系统监控
  • pfSense/OPNsense:防火墙状态

云存储

  • Nextcloud/ownCloud:个人云存储
  • Seafile:文件同步服务

网络工具

  • Pi-hole:DNS 广告拦截
  • AdGuard Home:网络广告拦截
  • Wireguard:VPN 服务状态

容器管理

  • Portainer:Docker 管理界面
  • Watchtower:容器自动更新

定制选项

主题定制

  • 内置主题:多种预设主题可选
  • 自定义 CSS:完全自定义样式
  • 图标支持:支持本地图标和在线图标
  • 布局控制:灵活的网格布局系统

国际化支持

  • 40+ 语言:完整的多语言支持
  • RTL 支持:支持从右到左的语言
  • 日期格式:本地化的日期时间格式
  • 数字格式:本地化的数字显示格式

响应式设计

  • 移动适配:完美的移动设备支持
  • 触摸友好:触摸设备优化交互
  • 多分辨率:适配各种屏幕尺寸
  • PWA 支持:可安装为 PWA 应用

性能优化

静态生成

  • 构建时优化:静态页面生成
  • CDN 友好:支持 CDN 部署
  • 缓存策略:合理的缓存机制
  • 懒加载:图片和组件懒加载

资源管理

  • 图片优化:自动图片优化和压缩
  • 代码分割:按需加载代码
  • API 代理:内置 API 代理减少延迟
  • 本地存储:配置本地缓存

安全考虑

访问控制

  • 反向代理认证:建议配合认证代理使用
  • API 密钥保护:所有 API 请求代理处理
  • CORS 配置:合理的跨域访问控制
  • CSP 策略:内容安全策略保护

最佳实践

  • HTTPS 部署:强制使用 HTTPS
  • 网络隔离:合理的网络访问控制
  • 定期更新:保持软件版本更新
  • 配置备份:定期备份配置文件

适用场景

个人用户

  • 家庭实验室:统一管理各种自托管服务
  • 媒体中心:集中访问媒体服务
  • 生产力工具:快速访问工作相关服务

小型团队

  • 开发团队:统一的开发工具访问入口
  • 运维监控:集中监控各种服务状态
  • 文档中心:整合各种文档和工具

企业应用

  • 内部门户:企业内部服务门户
  • 监控仪表板:系统和服务监控中心
  • 快速导航:常用工具和服务导航

Homepage 是自托管爱好者的理想选择,它不仅提供了美观的界面,还具备强大的集成能力和高度的可定制性。无论是个人用户还是小型团队,都能从中受益,创建属于自己的专属服务中心。