飞牛NAS部署 Dashy:另一个漂亮的导航页
前言
导航页是 NAS 用户常用的轻量级工具,它能把日常访问的服务、网站、工具集中到一个页面,提升操作效率。飞牛 NAS 的 Docker 生态非常成熟,今天我们来部署 Dashy——一个功能丰富、颜值在线的导航页应用。Dashy 支持自定义图标、分组、搜索、暗色模式,甚至能直接嵌入 iFrame 预览服务状态,非常适合作为家庭或办公网络的统一入口。
准备工作
在开始之前,请确保你的飞牛 NAS 满足以下条件:
- 已安装并正常启动 Docker 和 Docker Compose(飞牛 NAS 的 Docker 套件默认支持 Compose)。
- 拥有一个稳定的网络环境,能够拉取 Docker 镜像(如果速度慢,建议配置国内镜像加速)。
- 计划好映射端口,Dashy 默认使用 8080 端口,建议使用未被占用的端口,例如 8088。
第一步:创建项目目录
首先,通过飞牛 NAS 的文件管理器或 SSH 终端创建一个专属目录,用于存放 Dashy 的配置文件和数据。
sudo mkdir -p /docker/dashy
cd /docker/dashy
如果你习惯使用飞牛 NAS 的图形界面,可以在“文件管理器”中导航到 /docker/ 文件夹,新建一个名为 dashy 的文件夹。
第二步:编写 docker-compose.yml
Dashy 官方推荐使用 Docker Compose 进行部署,这样便于管理和升级。在 /docker/dashy 目录下新建一个 docker-compose.yml 文件,内容如下:
version: "3.8"
services:
dashy:
image: lissy93/dashy:latest
container_name: dashy
ports:
- "8088:80"
volumes:
- ./conf.yml:/app/public/conf.yml
restart: unless-stopped
environment:
- NODE_ENV=production
这里有几个关键点需要说明:
ports将宿主机的 8088 端口映射到容器的 80 端口。你可以根据实际情况修改左侧端口,例如改为 8090。volumes将本地的conf.yml挂载到容器内的 Dashy 配置目录。这样修改配置后只需重启容器即可生效,无需重建。restart: unless-stopped保证容器在 NAS 重启或异常退出后自动恢复。
第三步:创建初始配置文件
Dashy 的配置非常灵活,所有页面内容都定义在一个 YAML 文件中。在 /docker/dashy 目录下创建 conf.yml 文件,写入以下基础配置:
pageInfo:
title: 我的导航页
description: 飞牛NAS 常用服务入口
navLinks:
- title: GitHub
path: https://github.com
- title: 关于
path: https://example.com/about
appConfig:
theme: colorful
layout: auto
iconSize: medium
language: zh
sections:
- name: 常用工具
displayData:
sortBy: default
items:
- title: 飞牛NAS
description: 系统管理后台
icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/fnos.png
url: http://192.168.1.100:5000
target: newtab
- title: 文件管理
description: 文件管理器
icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/folder.png
url: http://192.168.1.100:5001
target: newtab
- title: Docker
description: 容器管理
icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/docker.png
url: http://192.168.1.100:9090
target: newtab
- name: 娱乐媒体
items:
- title: Jellyfin
description: 媒体服务器
icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/jellyfin.png
url: http://192.168.1.100:8096
target: newtab
- title: qBittorrent
description: 下载工具
icon: https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/qbittorrent.png
url: http://192.168.1.100:8080
target: newtab
请根据你的实际网络环境和 NAS IP 地址,修改 url 中的 IP 和端口号。图标使用了流行的 dashboard-icons 项目,你可以在其 GitHub 仓库中查找更多图标。
第四步:启动 Dashy
一切就绪后,在 /docker/dashy 目录下执行以下命令启动容器:
sudo docker-compose up -d
如果一切正常,你会看到类似 Creating dashy ... done 的提示。稍等片刻,打开浏览器访问 http://你的飞牛NAS IP:8088,就能看到 Dashy 的华丽界面了。
第五步:自定义配置详解
Dashy 的魅力在于高度可定制。下面介绍几个常用的配置技巧,让你的导航页更实用、更美观。
修改主题和布局
在 conf.yml 的 appConfig 部分,你可以调整以下参数:
theme: 可选default,colorful,dark,light,glass,minimal等。colorful适合凸显图标,glass是毛玻璃效果。layout: 可选auto,horizontal,vertical。auto会根据屏幕自动调整。iconSize: 可选small,medium,large。language: 设置为zh可启用中文界面。
添加分组和排序
sections 下的每个分组可以自定义名称和排序。如果你想指定某个分组内的图标顺序,可以设置 sortBy: custom,然后在每个 items 的 order 字段中指定数字。
sections:
- name: 开发工具
displayData:
sortBy: custom
items:
- title: Portainer
order: 1
...
- title: VS Code Server
order: 2
...
使用在线图标和本地图标
Dashy 支持图标 URL,你也可以使用 Font Awesome 或 Material Design 图标。例如,将图标改为 Font Awesome 的图标:
icon: fas fa-server
或者使用本地图片路径(需挂载到容器内):
icon: /assets/custom-logo.png
添加服务状态检测
Dashy 可以轮询服务的可用性,并在图标上显示状态指示灯。只需在 items 中添加 statusCheck: true 即可:
- title: 文件管理
url: http://192.168.1.100:5001
statusCheck: true
statusCheckInterval: 60
这样,Dashy 会每 60 秒检查一次该服务是否在线,在线则显示绿色圆点,离线则显示红色。
第六步:更新和备份
Dashy 的配置全部保存在 conf.yml 中,备份只需复制这个文件。更新时,执行以下命令即可:
sudo docker-compose pull
sudo docker-compose up -d
如果配置有变化,重启容器即可生效:
sudo docker-compose restart
常见问题
页面加载缓慢或图标不显示:检查网络是否能够访问 jsdelivr CDN。如果不行,可以将图标改为本地资源或换用其他 CDN。
无法访问 Dashy 页面:检查防火墙是否开放了映射端口,以及 Docker 容器是否正常运行。使用 sudo docker ps 查看容器状态。
配置修改后未生效:确认 conf.yml 文件格式正确(YAML 对缩进敏感),然后重启容器。
总结
Dashy 是一个轻量、美观且功能强大的导航页工具,通过飞牛 NAS 的 Docker Compose 部署,只需几分钟就能搭建出一个专属于你的服务入口。从分组管理到状态检测,从主题自定义到图标替换,Dashy 几乎能满足你对导航页的所有想象。现在就去配置你的第一个导航页,把飞牛 NAS 上的服务管理得井井有条吧。