高度可定制应用程序仪表板homepage

张启昊
张启昊
发布于 2024-06-08 / 44 阅读
1
0

高度可定制应用程序仪表板homepage

先看效果图

image-qkdu.png

安装

  1. docker安装镜像
docker pull ghcr.io/benphelps/homepage:latest
  1. 创建对应挂载文件夹
mkdir -p /docker/homepage/config
mkdir -p /docker/homepage/icons
mkdir -p /docker/homepage/images
  1. 运行容器
docker run -d --name homepage \
    -p 3000:3000 \
    -v /docker/homepage/config:/app/config \
    -v /docker/homepage/icons:/app/public/icons \
    -v /docker/homepage/images:/app/public/images \
    ghcr.io/benphelps/homepage:latest
  1. 输入网址 localhost:3000即可进入导航页

配置

主页使用 YAML 进行配置,YAML 代表“YAML Ain't Markup Language”。它是一种人类可读的数据序列化格式,是 JSON 的超集。非常适合配置文件,易于读写。支持复杂的数据类型,如列表和对象。缩进很重要。

Settings

该文件允许您定义应用程序级选项。要使对此文件所做的更改生效,您需要重新生成静态 HTML,这可以通过单击页面右下角的刷新图标来完成。settings.yaml

标题

title: My Awesome Homepage

起始网址

您可以根据需要自定义可安装应用程序的start_url。默认值为“/”。

startUrl: https://custom.url

背景图片

添加新映像时,都需要重新启动容器,这是Next.js静态站点服务器的限制。

不要创建到整个目录的绑定挂载。/app/public/

如果您想使用背景图片而不是纯色主题色,您可以提供所选图片的完整网址。

background: https://images.unsplash.com/photo-1502790671504-542ad42d5189?auto=format&fit=crop&w=2560&q=80

或者,您可以将路径传递给相对于本地图像的路径,例如 目录。/app/public/images

例如,在 Docker Compose 文件中,挂载到映像保存位置的路径:

volumes:
  - /my/homepage/images:/app/public/images

然后引用该图像:

background: /images/background.png

背景不透明度和滤镜

您可以指定要应用于背景图像的滤镜,以实现模糊、饱和度和亮度以及与背景颜色混合的不透明度。前三个过滤器设置使用顺风 CSS 类,请参阅下面的注释,了解每个类的选项。您不需要指定所有选项。

background:
  image: /images/background.png
  blur: sm # sm, "", md, xl... see https://tailwindcss.com/docs/backdrop-blur
  saturate: 50 # 0, 50, 100... see https://tailwindcss.com/docs/backdrop-saturate
  brightness: 50 # 0, 50, 75... see https://tailwindcss.com/docs/backdrop-brightness
  opacity: 50 # 0-100

卡片背景模糊

您可以将模糊滤镜应用于服务和书签卡。请注意,此选项与背景模糊、饱和度和亮度滤镜不兼容。

cardBlur: sm # sm, "", md, etc... see https://tailwindcss.com/docs/backdrop-blur

网站图标

如果您想使用自定义网站图标而不是随附的网站图标,您可以提供所选图像的完整 URL。

favicon: https://www.google.com/favicon.ico

或者,您可以将路径传递到相对于目录的本地映像。

主题

您可以通过传递选项来配置固定主题(并禁用主题切换器),如下所示:theme

theme: dark # or light

调色板

您可以通过传递该选项来配置固定调色板(并禁用调色板切换器),如下所示:color

color: slate

支持的颜色有:slategray zincneutral stoneamber yellowlime greenemerald tealcyan skyblue indigoviolet purplefuchsia pinkrose redwhite

布局

您可以将服务和书签部分配置为基于“列”或“行”的布局,如下所示:

假设您在 or 文件中有一个名为 or 的组,Mediaservices.yaml bookmarks.yaml

layout:
  Media:
    style: row
    columns: 4

例如,这将生成以下布局:

截图 2022-09-15 at 8 03:57 下午

标题样式

目前有 4 个标题样式选项,您可以在下面看到每个选项。

强调

headerStyle: underlined # default style

盒装

headerStyle: boxed

干净

headerStyle: clean

boxed小部件

headerStyle: boxedWidgets

基本URL

在某些代理配置中,可能需要设置文档基 URL。您可以通过提供值来执行此操作,如下所示:base

base: http://host.local/homepage

该 URL 必须是完整的绝对 URL,否则浏览器将忽略它。

语言

使用以下命令设置所需的语言:

language: fr

目前支持的语言:ca、de、en、es、fr、he、hr、胡、it、nb-NO、nl、pt、ru、sv、vi、zh-CN、zh-Hant

您还可以指定区域设置,例如 DateTime 小部件,例如 en-AU、en-GB 等。

链接目标

更改主页上链接的行为,

target: _blank # Possible options include _blank, _self, and _top

用于在新选项卡中打开链接、在同一选项卡中打开链接以及在新窗口中打开链接。_blank_self``_top

也可以为单个服务设置此值。请注意,在服务级别设置此项会覆盖settings.json中的任何设置,例如:

- Example Service:
    href: https://example.com/
    ...
    target: _self

供应商

该部分允许您定义共享 API 提供程序选项和密钥。目前,这允许您秘密定义天气 API 密钥,也是 Longhorn URL 和凭据的位置。providers

providers:
  openweathermap: openweathermapapikey
  weatherapi: weatherapiapikey
  longhorn:
    url: https://longhorn.example.com
    username: admin
    password: LonghornPassword

然后,您可以传递而不是在小部件配置中传递。providerapiKey

- weatherapi:
    latitude: 50.449684
    longitude: 30.525026
    provider: weatherapi

快速启动

您可以使用“快速启动”功能来搜索服务、执行 Web 搜索或打开 URL。要使用“快速启动”,只需在主页上开始输入(只要搜索小部件没有焦点)。快速启动

快速启动功能有一些可选设置:

  • searchDescriptions:用于控制搜索中是否包含项目描述。默认情况下,这是 false。启用后,与项目名称匹配的结果将放置在仅与描述匹配的结果之上。
  • hideInternetSearch:禁用自动包含当前选择的 Web 搜索(例如从小部件)作为快速启动选项。默认情况下,这是 false,启用该功能。
  • showSearchSuggestions:显示 Internet 搜索的搜索建议。如果未指定此设置,则该设置将从搜索小部件继承。如果此处也未指定,则默认为 false。对于自定义提供程序,需要进行设置才能使其正常工作。suggestionUrl
  • provider:搜索引擎提供商。如果未指定任何内容,它将尝试使用为搜索小部件设置的提供程序,如果两者都不存在,则将禁用 Internet 搜索。
  • hideVisitURL:禁用检测并提供打开 URL 的选项。默认情况下,这是 false,启用该功能。
quicklaunch:
  searchDescriptions: true
  hideInternetSearch: true
  showSearchSuggestions: true
  hideVisitURL: true
  provider: google # google, duckduckgo, bing, baidu, brave or custom

或自定义搜索:

quicklaunch:
  provider: custom
  url: https://www.ecosia.org/search?q=
  target: _blank
  suggestionUrl: https://ac.ecosia.org/autocomplete?type=list&q=

主页版本

默认情况下,发布版本显示在页面底部。要隐藏它,请使用设置,如下所示:hideVersion

hideVersion: true

日志路径

默认情况下,主页日志文件将写入文件夹的子目录。要自定义此路径,您可以设置设置。将在写入日志文件的位置创建一个文件夹。logsconfi logpathlogs

logpath: /logfile/path

默认情况下,日志会发送到指定路径的文件和发送到文件。这可以通过将环境变量设置为(默认值)之一或 来更改。stdout LOG_TARGETS both stdoutfile

显示Docker统计信息

您可以显示所有 docker 统计信息展开:settings.yaml

showStats: true

或按服务 () 使用:services.yaml

- Example Service:
    ...
    showStats: true

如果两者都设置了,则按服务设置优先。

状态样式

您可以从以下样式中进行选择,用于 docker 或 k8s 状态、站点监视器和 ping: 或 dotbasic

  • 默认值为 no 值,显示 monitor 和 ping 响应时间(以 ms 为单位)以及 docker / k8s 容器状态
  • dot显示一个绿点,表示监视器 ping 成功或运行状况良好。
  • basic显示监视器和 ping 的 UP 或 DOWN

例如:

statusStyle: "dot"

或按每个服务()使用:services.yaml

- Example Service:
    ...
    statusStyle: 'dot'

如果同时设置了这两个设置,则每个服务的设置优先。

实例名称

自动 docker 服务发现用于区分多个主页实例的名称。

例如:

instanceName: public

隐藏小组件错误信息

全局隐藏可见的 API 错误消息:settings.yaml

hideErrors: true

或每个服务小部件 () 与:services.yaml

- Example Service:
    ...
    widget:
    ...
        hideErrors: true

如果任一值设置为 true,则错误消息将被隐藏。

书签

书签在文件中配置。它们在组和列表的工作方式上与服务大致相同。它们只是更简单、更小,除了作为链接之外不包含任何额外功能。bookmarks.yaml

主页的设计预计是 2 个字母,但不强制。abbr

您还可以将图标用于书签,类似于服务器图标的选项。如果同时提供图标和缩写,则图标优先。

默认情况下,描述将使用链接的主机名,但您可以使用自定义描述覆盖它。

---
- Developer:
    - Github:
        - abbr: GH
          href: https://github.com/

- Social:
    - Reddit:
        - icon: reddit.png
          href: https://reddit.com/
          description: The front page of the internet

- Entertainment:
    - YouTube:
        - abbr: YT
          href: https://youtube.com/

呈现为(取决于您的主题等):

Bookmarks

默认的 bookmarks.yaml是一个工作示例。

服务

服务在文件内配置。您可以拥有任意数量的组,并且每个组可以拥有任意数量的服务。services.yaml

组被定义为顶级数组条目。

- Group A:
    - Service A:
        href: http://localhost/

- Group B:
    - Service B:
        href: http://localhost/

服务组

服务

服务被定义为组上的数组条目,

- Group A:
    - Service A:
        href: http://localhost/

    - Service B:
        href: http://localhost/

    - Service C:
        href: http://localhost/

- Group B:
    - Service D:
        href: http://localhost/

服务服务

描述

服务可能有描述,

- Group A:
    - Service A:
        href: http://localhost/
        description: This is my service

- Group B:
    - Service B:
        href: http://localhost/
        description: This is another service

服务说明

图标

服务可能附加了一个图标,您可以通过传递图标的名称、带或不带或带来自动使用仪表板图标中的图标以使用 svg 版本。.png.svg

您还可以从 Material Design Icons with 或 Simple Icons with 中指定前缀图标。mdi-XXsi-XX

您可以通过添加十六进制颜色代码作为后缀来指定自定义颜色,例如 或。mdi-XX-#f0d453si-XX-#a712a2

要使用远程图标,请使用绝对 URL(例如 )。https://...

若要使用本地图标,请先创建 Docker 挂载,然后将图标引用为 。添加新图标时,需要重新启动容器。/app/public/icons/icons/myicon.png

- Group A:
    - Sonarr:
        icon: sonarr.png
        href: http://sonarr.host/
        description: Series management

- Group B:
    - Radarr:
        icon: radarr.png
        href: http://radarr.host/
        description: Movie management

- Group C:
    - Service:
        icon: mdi-flask-outline
        href: http://service.host/
        description: My cool service

服务图标

Ping

服务可能具有一个可选属性,允许您监视外部主机的可用性。从 v0.8.0 开始,ping 功能将尝试在底层主机上使用 true (ICMP) ping 命令。目前仅支持 IPv4。ping

- Group A:
    - Sonarr:
        icon: sonarr.png
        href: http://sonarr.host/
        ping: sonarr.host

- Group B:
    - Radarr:
        icon: radarr.png
        href: http://radarr.host/
        ping: some.other.host

乒

还可以使用属性将不同的样式应用于 ping 指示器,请参阅设置。statusStyle

站点监视器

服务可能具有可选属性(以前称为 ),该属性允许您监视所选 URL 的可用性并显示响应时间。您无需将监视器 URL 设置为等于 href 或 ping URL。siteMonitorping

站点监视器功能的工作原理是向 URL 发出 http 请求,并在失败时回退到。例如,如果 URL 需要身份验证或落后于 Authelia,则它不会登录。在反向代理和/或身份验证的情况下,这通常需要使用“内部”URL 来使站点监视器功能正确显示状态。HEADGET

- Group A:
    - Sonarr:
        icon: sonarr.png
        href: http://sonarr.host/
        siteMonitor: http://sonarr.host/

- Group B:
    - Radarr:
        icon: radarr.png
        href: http://radarr.host/
        siteMonitor: http://some.other.host/

还可以使用属性将不同的样式应用于站点监视器指示器,请参阅设置。statusStyle

Docker集成

服务可以连接到 Docker 容器,可以在本地计算机上运行,也可以在远程计算机上运行。

- Group A:
    - Service A:
        href: http://localhost/
        description: This is my service
        server: my-server
        container: my-container

- Group B:
    - Service B:
        href: http://localhost/
        description: This is another service
        server: other-server
        container: other-container

服务容器

单击启用了 Docker 集成的服务的状态标签将展开容器统计信息,您可以在其中查看 CPU、内存和网络活动。

这也可以通过以下方式进行控制。有关详细信息,请参阅 show docker stats showStats

Docker Stats 扩展

服务集成

服务也可能附加了一个服务小部件(或集成),这独立于 Docker 集成工作。

您可以在 Widgets 页面上找到每个受支持集成的信息和配置。

以下是Radarr和Sonarr服务的示例,以及它们各自的集成。

- Group A:
    - Sonarr:
        icon: sonarr.png
        href: http://sonarr.host/
        description: Series management
        widget:
          type: sonarr
          url: http://sonarr.host
          key: apikeyapikeyapikeyapikeyapikey

- Group B:
    - Radarr:
        icon: radarr.png
        href: http://radarr.host/
        description: Movie management
        widget:
          type: radarr
          url: http://radarr.host
          key: apikeyapikeyapikeyapikeyapikey

服务集成

服务小组件

除非另有说明,否则 URL 不应以 API 路径或其他 API 路径结尾。每个小部件都将自行处理路径。/

每个服务都可以附加一个小部件(通常与服务类型匹配,但这不是强制的)。

除了服务的 href 之外,还可以指定要在其中打开该链接的目标位置。有关详细信息,请参阅链接目标。

以 Emby 为例,这就是附加 Emby 服务小部件的方式。

- Emby:
    icon: emby.png
    href: http://emby.host.or.ip/
    description: Movies & TV Shows
    widget:
      type: emby
      url: http://emby.host.or.ip
      key: apikeyapikeyapikeyapikeyapikey

现场可见性

每个小组件都可以选择通过小组件属性提供哪些字段应该可见的列表。如果未指定任何字段,则将显示所有字段。该属性必须是有效的字符串 YAML 数组。例如,以下是 Sonarr 的条目,仅显示几个字段。fieldsfields

在所有情况下,小部件都可以工作并显示所有字段,而无需指定 fields 属性。

- Sonarr:
    icon: sonarr.png
    href: http://sonarr.host.or.ip
    widget:
      type: sonarr
      fields: ["wanted", "queued"]
      url: http://sonarr.host.or.ip
      key: apikeyapikeyapikeyapikeyapikey

Docker

Docker 实例在文件中配置。支持 IP:PORT 和 Socket 连接。docker.yaml

对于 IP:PORT,只需确保您的 Docker 实例已配置为接受通过 HTTP API 的 API 流量。

my-remote-docker:
  host: 192.168.0.101
  port: 2375

使用 Docker TLS

由于 Docker 支持使用 TLS 和客户端证书身份验证进行连接,因此您可以在连接到 HTTP API 时包含 TLS 详细信息。有关设置 Docker 以接受 TLS 连接以及生成密钥和证书的更多详细信息,请参阅 Docker 文档。文件条目相对于目录(文件的位置)而言。configdocker.yaml

my-remote-docker:
  host: 192.168.0.101
  port: 275
  tls:
    keyFile: tls/key.pem
    caFile: tls/ca.pem
    certFile: tls/cert.pem

使用 Docker 套接字代理

出于直接公开 docker 套接字的安全考虑,您可以使用docker-socket-proxy容器在更受限制且更安全的 API 上公开 docker 套接字。

下面是一个示例 docker-compose 文件,它将公开 docker 套接字,然后从主页容器连接到它:

dockerproxy:
  image: ghcr.io/tecnativa/docker-socket-proxy:latest
  container_name: dockerproxy
  environment:
    - CONTAINERS=1 # Allow access to viewing containers
    - SERVICES=1 # Allow access to viewing services (necessary when using Docker Swarm)
    - TASKS=1 # Allow access to viewing tasks (necessary when using Docker Swarm)
    - POST=0 # Disallow any POST operations (effectively read-only)
  ports:
    - 127.0.0.1:2375:2375
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock:ro # Mounted as read-only
  restart: unless-stopped

homepage:
  image: ghcr.io/gethomepage/homepage:latest
  container_name: homepage
  volumes:
    - /path/to/config:/app/config
  ports:
    - 3000:3000
  restart: unless-stopped

然后,在设置文件中,您可以像这样配置 docker 实例:docker.yaml

my-docker:
  host: dockerproxy
  port: 2375

直接使用 Socket

如果希望直接使用套接字,请首先确保将本地套接字传递到 Docker 容器中。

为了直接使用套接字,主页必须以 root 身份运行

homepage:
  image: ghcr.io/gethomepage/homepage:latest
  container_name: homepage
  volumes:
    - /path/to/config:/app/config
    - /var/run/docker.sock:/var/run/docker.sock # pass local proxy
  ports:
    - 3000:3000
  restart: unless-stopped

如果您使用的是 ,这将是 。docker run-v /var/run/docker.sock:/var/run/docker.sock

然后,在设置文件中,您可以像这样配置 docker 实例:docker.yaml

my-docker:
  socket: /var/run/docker.sock

服务业

配置 docker 实例后,可以将它们应用于服务,以显示统计信息和状态报告。

在服务内部,您要连接到 docker:

- Emby:
  icon: emby.png
  href: "http://emby.home/"
  description: Media server
  server: my-docker # The docker server that was configured
  container: emby # The name of the container you'd like to connect

自动服务发现

主页具有附加适当标签的容器的自动服务发现功能,所有配置选项都可以使用点表示法应用,以 开头。homepage

下面是上面显示的相同服务条目的示例,作为 docker 标签。

services:
  emby:
    image: lscr.io/linuxserver/emby:latest
    container_name: emby
    ports:
      - 8096:8096
    restart: unless-stopped
    labels:
      - homepage.group=Media
      - homepage.name=Emby
      - homepage.icon=emby.png
      - homepage.href=http://emby.home/
      - homepage.description=Media server

正确配置 Docker 实例后,将自动发现此服务并将其添加到您的主页。您不需要指定 服务器容器值,因为它们将自动推断。

使用 docker swarm 时,请使用 deploy/labels

部件

您还可以使用点表示法配置小部件以及标准服务条目。

labels:
  - homepage.group=Media
  - homepage.name=Emby
  - homepage.icon=emby.png
  - homepage.href=http://emby.home/
  - homepage.description=Media server
  - homepage.widget.type=emby
  - homepage.widget.url=http://emby.home
  - homepage.widget.key=yourembyapikeyhere
  - homepage.widget.fields=["field1","field2"] # optional

您可以使用数组样式的点表示法为 CustomAPI 小部件添加指定字段:

labels:
  - homepage.group=Media
  - homepage.name=Emby
  - homepage.icon=emby.png
  - homepage.href=http://emby.home/
  - homepage.description=Media server
  - homepage.widget.type=customapi
  - homepage.widget.url=http://argus.service/api/v1/service/summary/emby
  - homepage.widget.mappings[0].label=Deployed Version
  - homepage.widget.mappings[0].field.status=deployed_version
  - homepage.widget.mappings[1].label=Latest Version
  - homepage.widget.mappings[1].field.status=latest_version

Docker Swarm

支持 Docker swarm,并使用相同的表示法指定 Docker 服务。要启用 swarm 支持,您需要在 docker.yaml 中包含一个设置,例如 servercontainer``swarm

my-docker:
  socket: /var/run/docker.sock
  swarm: true

要使自动服务发现发现所有服务,主页应部署在管理器节点上,这一点很重要。在堆栈 yaml 配置中将部署要求设置为主节点,例如

....
  deploy:
    placement:
      constraints:
        - node.role == manager
...

为了检测 Docker 群中的每个服务,必须使用服务标签而不是容器标签。将主页标签指定为:

....
  deploy:
    labels:
      - homepage.icon=foobar
...

多个主页实例

可以在 settings.md 中配置可选字段,以区分多个主页实例。instanceName

若要将标签限制为实例,请在前缀后插入。.instance.{{instanceName}}homepage

labels:
  - homepage.group=Media
  - homepage.name=Emby
  - homepage.icon=emby.png
  - homepage.instance.internal.href=http://emby.lan/
  - homepage.instance.public.href=https://emby.mydomain.com/
  - homepage.description=Media server

订购

从 v0.6.4 开始,发现的服务可以包含一个可选字段来确定排序,以便:weight

  • 发现的服务的默认权重为 0
  • 已配置服务的默认权重是其组内按 100 缩放的索引,即 (index + 1) * 100
  • 如果两个项目具有相同的权重值,则将按名称对它们进行排序

显示统计数据

您可以通过单击状态指示器来显示 docker 统计信息,但也可以通过以下方式按服务进行控制:

- Example Service:
  ...
  showStats: true

另请参阅显示docker统计信息的设置。

自定义CSS和JS

从 v0.6.30 版本开始,主页支持添加您自己的自定义 css 和 javascript。请自行承担风险

要添加自定义 css,只需编辑 config 目录下的文件,同样对于 javascript,您将编辑 .然后,您可以使用各种类/ID 定位主页中的元素,以根据自己的喜好自定义内容。custom.csscustom.js

您还可以使用自定义 css 或 javascript 为服务或书签设置特定目标,例如 id

Service:
    id: myserviceid
    icon: icon.png
    ...

参考(自用)

servers.yaml

---
# For configuration options and examples, please see:
# https://gethomepage.dev/latest/configs/services

- 测速:
    - 互联网:
        href: https://www.speedtest.cn/
        description: 本机与互联网测速
    - 家:
        href: https://www.zhangqihao.cn:3002
        description: 本机与家中网络测速
        ping: https://www.zhangqihao.cn:3002
    - 机房:
        href: https://server.zhangqihao.cn:3002
        description: 本机与机房网络测试
        ping: https://server.zhangqihao.cn:3002

- NAS:
    - DS423+ DSM:
        icon: /icons/dsm.PNG
        href: http://nas.zhangqihao.cn
        description: 群晖DS423+ DSM管理页面
        ping: https://www.zhangqihao.cn:5001
        # widget:
        #   type: diskstation
        #   url: https://www.zhangqihao.cn:5001
        #   username: liuxinyu
        #   password: Liu20011110@
    - DS918+ DSM:
        icon: /icons/dsm.PNG
        href: https://www.liuxinyu.love:5001/
        description: 群晖DS918+ DSM管理页面
        ping: https://www.liuxinyu.love:5001/
        # widget:
        #   type: diskstation
        #   url: https://www.liuxinyu.love:5001
        #   username: zhangqihao
        #   password: Zqh20020111@
    - TrueNAS:
        icon: /icons/truenasscale.png
        href: https://server.zhangqihao.cn:10443/
        description: TrueNAS
        ping: https://server.zhangqihao.cn:10443/
        widget:
            type: truenas
            url: https://server.zhangqihao.cn:10443
            # username: zhangqihao # not required if using api key
            # password: Zqh20020111@ # not required if using api key
            key: 1-LaFPFARNZJyKSVkc3IzdjogmaeiKOtHI4OwlxtroDNcEqxOymqQBn4fQZ2gyYJqs # not required if using username / password

- 应用:
    - Synology Drive:
        icon: /icons/drive.PNG
        href: http://nas.zhangqihao.cn/drive
        description: 群晖Drive应用
    - Synology Photo:
        icon: /icons/photos.PNG
        href: http://nas.zhangqihao.cn/photo
        description: 群晖Photo应用
    - Synology Chat:
        icon: /icons/chat.PNG
        href: http://nas.zhangqihao.cn/chat
        description: 群晖Chat应用
    - Virtual Machine Manager:
        icon: /icons/virtualmachinemanager.PNG
        href: http://nas.zhangqihao.cn/vmm
        description: 群晖虚拟机应用
    - Video Station:
        icon: /icons/video.PNG
        href: http://nas.zhangqihao.cn/video
        description: 群晖Video Station应用
    - Surveillance Station:
        icon: /icons/surveillancestation.PNG
        href: http://nas.zhangqihao.cn/cam
        description: 群晖监控应用
    - Note Station:
        icon: /icons/note.PNG
        href: http://nas.zhangqihao.cn/note
        description: 群晖Note Station应用
    - Synology MailPlus:
        icon: /icons/mailstation.PNG
        href: http://nas.zhangqihao.cn/mail
        description: 群晖MailPlus应用
    - 原导航页:
        icon: /icons/favicon.jpg
        href: https://www.zhangqihao.cn:8081
        description: 原服务导航页
        ping: https://www.zhangqihao.cn:8081
    - 资源文件服务器:
        icon: /icons/nginx.png
        href: http://files.zhangqihao.cn
        description: Nginx静态文件服务器
        ping: https://files.zhangqihao.cn
    - VoceChat:
        icon: /icons/vocechat.PNG
        href: https://vocechat.zhangqihao.cn
        description: VoceChat聊天服务器
        ping: https://vocechat.zhangqihao.cn
    - EMQX Dashboard:
        icon: /icons/emqx.png
        href: https://server.zhangqihao.cn:18083
        description: EMQX mqtt服务器
        ping: https://server.zhangqihao.cn:18083
    - 文件快递柜:
        icon: /icons/fengchao.png
        href: http://www.liuxinyu.love:12345
        description: 文件快递柜,文件分享
        ping: http://www.liuxinyu.love:12345
    - Home Assistant:
        icon: /icons/ha.png
        href: http://www.zhangqihao.cn:8123
        description: Home Assistant
        ping: http://www.zhangqihao.cn:8123
    - MCSManager:
        icon: /icons/mc.png
        href: https://console.mc.zhangqihao.cn
        description: MCSManager我的世界面板
        ping: https://console.mc.zhangqihao.cn
    - ChatGPT:
        icon: /icons/chatgpt.png
        href: https://chat.zhangqihao.cn
        description: ChatGPT
        ping: https://chat.zhangqihao.cn
    - 张启昊博客站:
        icon: https://files.zhangqihao.cn/image/icon/halo.jpg
        href: https://blog.zhangqihao.cn
        description: 张启昊的博客站
        ping: https://blog.zhangqihao.cn
    - NextCloud:
        icon: /icons/nextcloud.png
        href: https://server.zhangqihao.cn:9001
        description: NextCloud文件服务器
        ping: https://server.zhangqihao.cn:9001
        widget:
            type: nextcloud
            url: https://server.zhangqihao.cn:9001
            username: zhangqihao
            password: Zqh20020111@
    - AdGuard Home:
        icon: /icons/adguard.png
        href: http://8.130.44.93:3000/
        description: AdGuard Home DNS解析
        ping: http://8.130.44.93:3000/
        widget:
            type: adguard
            url: http://8.130.44.93:3000
            username: zqh
            password: Zqh20020111@
    - Jellyfin:
        icon: /icons/jellyfin.png
        href: https://www.zhangqihao.cn:8095
        description: Jellyfin影视服务器
        ping: https://www.zhangqihao.cn:8095
        widget:
            type: jellyfin
            url: https://www.zhangqihao.cn:8095
            key: b9ddbbdf86e64f8daa0aef18d3ab92d6
            enableBlocks: true # optional, defaults to false
            enableNowPlaying: true # optional, defaults to true
  
# - 云:  
#     - 阿里云:
#             icon: /icons/aliyun.png
#             href: https://www.aliyun.com
#             description: 阿里云
#     - DNSPod:
#             icon: /icons/dnspod.png
#             href: https://console.dnspod.cn
#             description: 腾讯DNSPod
#     - 贝锐蒲公英:
#             icon: /icons/pgy.png
#             href: https://console.sdwan.oray.com/zh/main
#             description: 贝锐蒲公英管理页面


- 路由器:
    - 家:
        icon: /icons/asus.png
        href: https://zqh-home.asuscomm.cn:8443
        description: TUF GAMING小旋风
        ping: https://zqh-home.asuscomm.cn:8443
    - 机房:
        icon: /icons/asus.png
        href: https://zqh-server.asuscomm.cn:8443
        description: AX57U
        ping: https://zqh-server.asuscomm.cn:8443
    - OpenWrt:
        icon: /icons/openwrt2.png
        href: https://server.zhangqihao.cn:480
        description: OpenWrt
        ping: https://server.zhangqihao.cn:480
    - Nginx Proxy Manager:
        icon: /icons/nginx_proxy_manager.png
        href: http://101.133.235.141:81/
        description: Nginx Proxy Manager 国内
        ping: http://101.133.235.141:81/
    - Nginx Proxy Manager:
        icon: /icons/nginx_proxy_manager.png
        href: http://8.219.54.160:81/
        description: Nginx Proxy Manager 新加坡
        ping: http://8.219.54.160:81/
    - X2ray:
        href: http://vpn.zhangqihao.cn:54321/
        description: X2ray
        ping: http://vpn.zhangqihao.cn:54321/

- 内网书签:
    - IDRAC:
        icon: /icons/idrac.png
        href: http://192.168.50.2
        description: DELL IDRAC
    - ESXI:
        icon: /icons/vmware.png
        href: https://192.168.50.3/ui/#/login
        description: VMWARE ESXI8

bookmarks.yaml

---
# For configuration options and examples, please see:
# https://gethomepage.dev/latest/configs/bookmarks

- 云:
    - 阿里云:
        - icon: /icons/aliyun.png
          href: https://console.aliyun.com
    - 腾讯云:
        - icon: /icons/dnspod.png
          href: https://cloud.tencent.com/
    - CloudFlare:
        - icon: /icons/cloudflare.png
          href: https://dash.cloudflare.com/
    - Vultr:
        - icon: /icons/vultr.png
          href: https://my.vultr.com/
    - 贝锐蒲公英:
        - icon: /icons/pgy.png
          href: https://console.sdwan.oray.com
    - Cpolar:
        - abbr: C
          href: https://dashboard.cpolar.com/
    - Vercel:
        - abbr: ▲
          href: https://vercel.com/

- 工具:
    - 端口扫描:
        - abbr: PORT
          href: http://coolaf.com/tool/port
    - 在线GET、POST:
        - abbr: POST
          href: http://coolaf.com/zh/tool/post
    - iP地址查询:
        - abbr: IP
          href: https://www.ip138.com/
    - 代码截图工具:
        - abbr: PS
          href: https://quanxin.org/code-snapshot
    - Gofile文件分享工具:
        - icon: /icons/gofile.png
          href: https://gofile.cc/
    - SVG转PNG:
        - href: https://svgtopng.com/zh/

- 资源:
    - KoolCenter:
        - abbr: KC
          href: https://www.koolcenter.com/
    - Maven Repository:
        - abbr: MVN
          href: https://mvnrepository.com/
    - 清华开源镜像站:
        - abbr: MIRR
          href: https://mirrors.tuna.tsinghua.edu.cn/
    - 阿里巴巴开源镜像站:
        - abbr: MIRR
          href: https://developer.aliyun.com/mirror
    - 网易开源镜像站:
        - abbr: MIRR
          href: http://mirrors.163.com/
    - APKPure:
        - abbr: APK
          href: https://apkpure.com/
    - icon素材网:
        - abbr: ICON
          href: http://icon.chrafz.com/
    - HaiKei背景生成:
        - abbr: BG
          href: https://app.haikei.app/
    - 谷歌字体:
        - abbr: GG
          href: https://fonts.google.com/
    - 磁力猫:
        - href: https://魔法猫咪.lol

- 开发:
    - Github:
        - abbr: GH
          href: https://github.com/
    - Gitee:
        - abbr: GE
          href: https://gitee.com/
    - CSDN:
        - abbr: CSDN
          href: https://www.csdn.net/
    - SoruceForce:
        - abbr: SF
          href: https://sourceforge.net/
    - 恩山无线论坛:
        - href: https://www.right.com.cn/

- 电影:
    - The Movie Database:
        - abbr: TMDB
          href: https://www.themoviedb.org/
    - 豆瓣电影:
        - href: https://movie.douban.com/
    - RARBG:
        - href: https://rargb.to/
    - 4KHDR世界:
        - href: https://www.4khdr.cn/
    - 6v电影网:
        - href: http://www.6vgood.net/
    - 不太灵影视:
        - href: https://www.2bt0.com/
    - 布谷TV:
        - href: https://www.bugutv.org/
    - SubHD:
        - href: https://subhd.tv/
    - RSSHub:
        - href: https://docs-rsshub-app.tagtagworks.com/

# - Social:
#     - Reddit:
#         - abbr: RE
#           href: https://reddit.com/

# - Entertainment:
#     - YouTube:
#         - abbr: YT
#           href: https://youtube.com/

settings.yaml

---
# For configuration options and examples, please see:
# https://gethomepage.dev/en/configs/settings

language: zh-CN
logpath: /
background:
  # image: https://images.unsplash.com/photo-1502790671504-542ad42d5189?auto=format&fit=crop&w=2560&q=80
  # image: https://www.bing.com/th?id=OHR.WatSriSawai_ZH-CN7688908090_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp
  # image: /images/bg1.jpg
  image: https://server.zhangqihao.cn:13443/image/background/2efd73dc1t268ad05f139496be1a2d72.jpeg
  # blur: sm # sm, "", md, xl... see https://tailwindcss.com/docs/backdrop-blur
  # saturate: 50 # 0, 50, 100... see https://tailwindcss.com/docs/backdrop-saturate
  # brightness: 50 # 0, 50, 75... see https://tailwindcss.com/docs/backdrop-brightness
  opacity: 20 # 0-100
fiveColumns: true
hideVersion: true
title: 张启昊服务导航页
layout:
  测速:
    icon: /icons/speedtest.png
    style: row
    columns: 7
  NAS:
    icon: /icons/database.png
    style: row
    columns: 4
  应用:
    icon: /icons/internet.png
    style: row
    columns: 4
  # 云:
  #   icon: /icons/onedrive.png
  #   style: row
  #   columns: 4
  路由器:
    icon: /icons/router.png
    style: row
    columns: 7
  内网书签:
    icon: /icons/local.png
    style: row
    columns: 4

widgets.yaml

---
# For configuration options and examples, please see:
# https://gethomepage.dev/latest/configs/widgets

- resources:
    cpu: true
    memory: true
    disk: /

# - openmeteo
- weatherapi:
    label: 苏州 # optional
    latitude: 120.63132
    longitude: 31.30227
    timezone: Asia/Shanghai # optional
    units: metric # or imperial
    apiKey: e5e7a8a2d27745f6bb1162246232410
    cache: 5 # Time in minutes to cache API responses, to stay within limits

- datetime:
    text_size: xl
    format:
        timeStyle: short
        dateStyle: long
        hour12: true

- search:
    provider: bing
    focus: true
    target: _blank


评论