Dashy —— 一个现代化的自托管仪表盘,帮助你便捷地管理和访问你服务器上的各种服务和工具。
Dashy 提供了一个直观的 Web 界面,支持多种自定义功能和插件:
安装 Docker 环境
配置 Docker Compose
在 HestiaCP 中新建网站,配置ssl,新建数据库的操作就不再赘述了。如果你是第一次看到 HestiaCP 系列教程,请点击下方链接,就能看到完整的一系列教程了。
如果你打算使用 HestiaCP 的备份与恢复功能,可以将 Docker Compose 文件和持久化存储设置在网站目录下。接下来我们就以这种方式进行演示。
我们在 /home/user/web/domain/public_html/
目录下创建一个 docker-compose.yml
文件。内容参考如下:
---
version: "3.8"
services:
dashy:
# To build from source, replace 'image: lissy93/dashy' with 'build: .'
# build: .
image: lissy93/dashy
container_name: Dashy
# Pass in your config file below, by specifying the path on your host machine
volumes:
- /home/user/web/domain/public_html/user-data:/app/user-data
ports:
- 12345:8080
# Set any environmental variables
environment:
- NODE_ENV=production
# Specify your user ID and group ID. You can find this by running `id -u` and `id -g`
- UID=1021
- GID=1021
# Specify restart policy
restart: unless-stopped
# Configure healthchecks
healthcheck:
test: ['CMD', 'node', '/app/services/healthcheck']
interval: 1m30s
timeout: 10s
retries: 3
start_period: 40s
反向代理
配置 Dashy
Dashy 的配置文件与 Clash ,Surge 的配置文件很类似,稍微看下文档就能上手。
主要分为这四个部分:pageInfo
、pages
、appConfig
、sections
,我们一部分一部分的来写配置文件。
pageInfo
用于配置页面的核心信息,包括页首文本、页脚、页面标题和导航标签。
pageInfo:
title: Hello, FOXCOO
description: General browser startpage
navLinks:
- title: Portfolio
path: https://foxcoo.net
- title: HOSTEYE
path: https://hosteye.net
- title: HOSTEYE STATUS
path: https://status.hosteye.net
- title: 页面标题,显示在浏览器标签栏上,这里设置为
Hello, FOXCOO
。 - description: 页面描述,通常用于在搜索引擎中显示或提供给用户更多页面信息,这里设置为
General browser startpage
。 - navLinks: 这是一个包含多个导航链接的列表,每个链接有:
- title: 导航链接的标题,会显示在页面上。
- path: 导航链接指向的 URL 地址,点击后会跳转到该地址。
pages
用于设置右上角的附加页面,便于拓展和管理多页面内容。
pages:
- name: ad
path: asdasd.yml
- name: 这个字段指定附加页面的名称,它将出现在 Dashy 的页面导航中。例子中的
ad
是该附加页面的名称。 - path: 这个字段指定附加页面的路径,它指向一个路径为
/app/user-data
的件(通常是.yml
格式的配置文件),该文件中包含该附加页面的具体内容和配置。例子中的asdasd.yml
就是该页面的配置文件路径。
appConfig
负责 Dashy 应用的关键配置,例如主题、布局和其他全局设置。
appConfig:
statusCheck: true
theme: dracula
fontAwesomeKey: xxxxxxxx
customCss: '.clock p.time { font-size: 3rem !important; }'
layout: auto
iconSize: small
backgroundImg: https://xxxx.com/xxx.jpg
auth:
users:
- user: 123
hash: xxxxxx
type: admin
webSearch:
searchEngine: google
- statusCheck: true
启用状态检查功能,Dashy 会监控服务状态并显示结果。 - theme: dracula
设置 Dashy 的主题为dracula
,即暗色主题。 - fontAwesomeKey: xxxxxx
配置 Font Awesome 图标库的 API 密钥,用于加载图标。 - customCss: '.clock p.time { font-size: 3rem !important; }'
自定义 CSS 样式,修改.clock
类下.time
元素的字体大小。 - layout: auto
自动选择最适合的布局,通常根据屏幕大小和内容动态调整。 - iconSize: small
设置图标为小尺寸。 - backgroundImg: https://xxx.xxx
设置页面背景图片,使用指定的 URL 地址。 - auth:
配置用户身份验证。- user:
123
为用户名。 - hash: 写入密码的加密哈希值。你可以用下方的简易的加密工具。
- user:
- type:
admin
表示该用户为管理员。 - webSearch:
设置搜索引擎为 Google,方便用户在页面上进行搜索。
SHA-256 加密工具
加密后的结果:
sections
用于设置页面中间的内容,包括列表、小部件等功能模块的排布和展示。
sections:
- name: Today
icon: far fa-smile-beam
displayData:
collapsed: false
hideForGuests: false
widgets:
- type: clock
id: 0_513_clock
- type: weather
options:
apiKey: xxxxxxxxxxxxxxx
city: Shanghai
id: 1_513_weather
- type: crypto-watch-list
options:
currency: USD
sortBy: marketCap
assets:
- bitcoin
- ethereum
- monero
- solana
- polkadot
id: 2_513_cryptowatchlist
- type: rss-feed
options:
rssUrl: https://rsshub.xxx
limit: 3
- name: BIY
icon: far fa-briefcase
items:
- title: Miniflux
icon: favicon
url: https://xxx.com
description: Miniflux
tags:
- rss
- miniflux
RSS Feed :
这个小组件可以用来显示来自指定 RSS 源 的最新内容。你可以通过设置 rssUrl
来连接你自己搭建的 RssHub 或其他 RSS 源,并根据需要限制显示的条目数(这里配置的是最多显示 3 条内容)。
icon:
Dashy 提供了多种方式来设置服务的图标,我简单说一下自动获取 Favicon 和使用自定义图标。
自动获取 Favicon:Dashy 可以自动从服务的网址获取 Favicon 作为图标。只需在配置中设置 icon: favicon
,Dashy 会自动抓取图标。
使用自定义图标:你也可以上传自己的图标,并通过路径引用它。将图标文件(例如 portainer.svg
)放到指定目录:/home/user/web/domain/public_html/user-data/item-icons/
然后在配置中引用它:icon: portainer.svg
其他的小组件配置官方文档中有非常详细的说明,而且它们的配置也非常简单易懂。如果你有其他组件的需求,可以参考文档进行更改和调整。
接下来,关于如何实现不同组件之间的联动,我将在下一篇文章中进一步详细介绍,敬请期待!