FlatNas 功能使用手册

FlatNas 是一个轻量级、高度可定制的个人导航页与仪表盘系统。它基于 Vue 3 和 Express 构建,旨在为 NAS 用户、极客和开发者提供一个优雅的浏览器起始页。

自带文件传输助手、日历、天气、备忘录、代办、RSS 订阅、热搜榜单、音乐播放器等组件,为 NAS 用户、极客和开发者提供的优雅导航起始页。

🖥️

自由布局

支持网格布局,自由拖拽,不同尺寸组件随心配置,完美适配桌面与移动端。

📱

响应式设计

完美适配桌面端与移动端,手机访问自动切换为适合触摸操作的布局。

🧩

丰富组件

内置日历、天气、备忘录、RSS订阅、热搜榜单、音乐播放器等实用组件。

🐳

Docker管理

可视化的 Docker 容器管理,支持启动、停止、重启容器及查看日志。

🎨

高度定制

支持自定义壁纸、图标、主题色,打造完全属于你的个性化导航页。

🔒

数据安全

数据完全本地存储,支持配置导入导出,无需担心隐私泄露。


主要功能

文件传输助手预览

文件传输助手预览

仪表盘与布局

  • 网格布局:自由拖拽,支持多尺寸组件。
  • 分组管理:创建分组,分类管理应用与书签。
  • 响应式设计:桌面与移动端自适应。
  • 编辑模式:所见即所得,快速添加/删除/调整。

内置小组件

  • 书签组件:支持自定义图标,首次启动自动填充常用站点。
  • 时钟与天气:实时显示时间与当地天气。
  • 文件传输助手:支持文件图片消息的上传,支持超链接,文本自由选择,图标预览,多选,删除,复制等功能。
  • 待办事项:简易任务管理。
  • RSS 订阅:获取订阅源最新内容。
  • 热搜榜单:聚合热点信息。
  • 计算器与音乐播放器:便捷工具与本地音乐播放。

个性化定制

  • 图标管理:上传图片,支持 Hex 颜色。
  • 背景设置:自定义壁纸。
  • 分组卡片背景:统一图片/模糊/遮罩风格。
  • 访客统计:页脚显示访问量与在线时长。
  • 数据安全:本地存储配置,密码访问保护。
  • CGI 扩展与更新提醒:支持脚本扩展与版本检测。

近期更新

v1.0.41 更新提示

  • 添加文字内容可以自由框选
  • 增加http://和https://的超链接跳转
  • 每日一言关闭手机后依然会在手机端展现
  • 添加可调色纯色背景
  • 添加返回首页快捷键
  • 增加了滚动隔离,升级体验
  • 变动了倒计时的编辑按钮的层级
  • 添加自定义JS(可与自定义CSS协作)

快速开始

本地开发与构建

  • 本地开发:
    • 克隆并安装依赖:git clonenpm install
    • 启动:npm start(前端与后端同时启动)。
    • 地址:前端 http://localhost:5173,后端 http://localhost:3000。
  • 部署构建:
    • 构建前端:npm run build(产物在 dist)。
    • 运行生产服务:npm run server,通过 http://localhost:3000 访问。

FPK 安装

飞牛私有云 (fnOS): 飞牛私有云 fnOS 应用中心搜索 FlatNas 即可一键安装。

Docker 部署

构建镜像

docker build -t flatnas .

运行容器

docker run -d \
    -p 23000:3000 \
    -v $(pwd)/data:/app/server/data \
    -v $(pwd)/music:/app/server/music \
    -v $(pwd)/PC:/app/server/PC \
    -v $(pwd)/APP:/app/server/APP \
    -v $(pwd)/doc:/app/server/doc \
    -v /var/run/docker.sock:/var/run/docker.sock \
    --name flatnas \
    qdnas/flatnas:1.0.41

注意: 建议挂载 data、music、PC 和 APP 目录,以确保配置数据、媒体文件和自定义壁纸在容器重启后不会丢失。若需要使用 Docker 管理功能,必须挂载 /var/run/docker.sock。

docker-compose 示例

version: "3.8"

services:
  flatnas:
    image: qdnas/flatnas:1.0.41
    container_name: flatnas
    restart: unless-stopped
    ports:
      - "23000:3000"
    volumes:
      - ./data:/app/server/data #指定路径下新建data
      - ./music:/app/server/music #映射播放器路径
      - ./PC:/app/server/PC #映射背景路径
      - ./APP:/app/server/APP #映射移动端背景路径
      - ./doc:/app/server/doc #映射文件传输助手路径
      - /var/run/docker.sock:/var/run/docker.sock #映射Docker Socket

一键部署 (Debian)

如果您使用 Debian 系统,可以使用我们提供的自动化脚本进行无 Docker 部署。

快速安装(推荐)

无需手动下载代码,直接运行以下命令即可:

wget -O deploy.sh https://raw.githubusercontent.com/Garry-QD/FlatNas/main/deploy.sh && sudo bash deploy.sh install

手动安装

git clone https://github.com/Garry-QD/FlatNas.git
cd FlatNas
chmod +x deploy.sh
sudo ./deploy.sh install

配置说明

关键路径

  • 默认密码:admin,登录后请及时修改。
  • 数据文件:server/data/data.json。
  • 音乐文件:server/music(支持 MP3)。
  • CGI 脚本:server/cgi-bin。
  • 背景图片:server/PC(PC 端)、server/APP(移动端)。
  • 文件传输助手:server/doc。
  • Docker Socket:/var/run/docker.sock(需挂载)。

智能网络环境检测

网络状态预览

功能描述

  • 多维度识别:客户端 IP、访问域名、网络延迟。
  • 自动路由:内网优先使用 LanUrl,公网用外网地址。
  • 无感切换:同一图标自动跳转最佳地址。
  • 在编辑窗口填写外网链接与内网链接。
  • 典型场景:家庭 NAS、开发调试优先使用本地端口。
  • 反向代理需透传真实 IP(示例:设置 X-Forwarded-For)。
  • 未配置内网地址时自动回退外网地址。

分组编辑功能

分组是管理导航项目的基本单元,支持多层级嵌套与自定义排序。

分组设置预览
编辑图标 新建分组图标

创建与删除分组

  1. 点击左上角编辑后再点击侧边栏底部的 "新建分组" 按钮。
  2. 在弹窗中输入分组名称(建议 4-6 个字)。
  3. 编辑模式下直接点 删除 就可以删除分组 (注意:删除分组将同步删除其下所有项目)。
  4. 支持拖拽排序功能。在编辑模式下,长按拖拽分组图标即可上下拖动调整顺序。

分组设置详情

点击分组标题旁的设置按钮,可进入详细配置界面:

  • 分组标题: 自定义分组名称。
  • 公开此分组: 控制分组内容的可见性,开启后未登录用户也可访问。
  • 自动隐藏标题: 开启后,分组标题仅在鼠标悬停时显示。
  • 布局与间距:
    • 卡片布局: 可选择“垂直”或“水平”排列卡片。
    • 水平卡片布局 垂直卡片布局
    • 卡片间距: 调整卡片之间的距离。
    • 卡片大小: 调整卡片的整体尺寸。
    • 图标大小: 调整卡片内图标的尺寸。
  • 卡片样式:
    • 卡片外观: 可设置背景色/字体颜色、背景图、透明度及显示状态。
    • 卡片背景图: 上传或选择卡片背景图片。
    • 圆角半径: 调整卡片的圆角大小。
    • 遮罩浓度: 调整背景图的遮罩透明度。
    • 图标形状: 可选择图标的显示形状,如“圆角矩形”““不使用图标””。不使用图标功能展现
    • 不使用图标预览
  • 恢复默认设置: 将当前分组设置恢复到系统默认状态。
  • 删除此分组: 彻底删除该分组及其包含的所有项目。

项目管理功能

项目即您的具体服务入口,如 NAS 管理页面、Docker 容器等。

新增项目预览

新增项目/编辑项目

点击“新增项目”按钮或右击编辑卡片,将弹出配置窗口,您可以详细设置新项目的各项属性:

  • 公开显示: 开启后,该项目对所有访客可见。
  • 标题与颜色: 设置项目显示名称,并可自定义标题文字颜色。
  • 外网链接: 项目的外部访问 URL(如域名访问地址),必填项。
  • 内网链接: 可选,设置局域网访问地址,在内网环境下将优先跳转此链接。
  • 图标管理:
    • 图片/URL: 支持上传本地图片、裁剪或直接填写图片 URL。
    • 自动适配与抓取: 提供 自动适配图标(去除背景)与 自动抓取图标(从目标网站获取)功能。
    • 缩放比例: 通过滑块实时调整图标在卡片中的显示大小。
    • Emoji: 快速选择内置 Emoji 作为项目图标。
  • 项目描述: 设置鼠标悬停在卡片上时显示的提示文本。
  • 卡片背景: 支持为单个项目设置背景图,并可配置 模糊遮罩 浓度。
标题 项目的显示名称
外网链接 互联网访问地址 (http/https)
内网链接 局域网访问地址,内网环境优先跳转
图标 支持图片、URL、自动抓取或 Emoji
描述 鼠标悬停时显示的提示文本

图标库

目前收集了5700个图标,每个站点放置了1700+不重复的图标,欢迎配合本地缓存使用:

项目常用操作

  • 移动至分组: 将项目快速移动到其他分组以便分类管理。
  • 置顶/排序: 拖拽调整项目顺序,或将重要项目置顶。
  • 复制项目: 以当前项目为模板创建副本,便于批量添加相似服务。
  • 删除项目: 从当前分组移除该项目,删除前请确认。
  • 搜索与筛选: 通过名称或标签快速定位项目。

链接优先策略

当同时设置外网与内网链接时:

  • 内网优先: 局域网访问时优先跳转到内网链接。
  • 外网回退: 在无法访问内网或外部网络环境下,自动使用外网链接。

输入校验与建议

  • URL 格式: 需为有效的 http/https 链接,推荐显式填写端口。
  • 图标与背景: 建议使用清晰的 PNG/SVG/JPG 资源以获得更佳显示效果。
  • 命名规范: 项目标题保持简洁(建议不超过 12 个字)。

编辑模式说明 编辑模式

进入/退出

点击页面右下角的 编辑按钮即可进入编辑模式。再次点击编辑按钮退出。

拖动组件和项目说明

  • 进入编辑模式后,按住组件卡片即可拖动到目标位置。
  • 支持网格吸附与自动对齐,松开后卡片将自动贴合最近网格。
  • 拖动过程中页面支持自动滚动,便于跨区域移动。
  • 按住卡片将其拖拽到目标分组区域,分组边框会高亮提示可放置。
  • 松开即完成换组,卡片将遵循目标分组的布局与样式。
  • 支持批量选择后整体拖动到新分组。

编辑组件的展现尺寸

  • 点击组件右下角的设置按钮,打开“调整尺寸”网格选择器。
  • 通过选择 行 × 列 规格(如 1×3、2×2 等)设置组件的占位大小。
  • 尺寸变更后会即时预览,保存后生效。
组件尺寸

外观布局

外观布局设置预览

基础信息

  • 网站标题: 设置页面顶部显示的站点名称(如图片中的 "FlatNas")。
  • 背景图片: 详见下方的 壁纸库 章节。
  • 纯色背景: 支持通过颜色选择器设置背景色(如 #f3f4f6),并支持重置。

布局与排版

  • 顶部栏布局: 支持“标准布局”和“反转布局”一键切换。
  • 标题大小与颜色: 通过滑条调节主标题字号,并可自定义文字颜色(支持重置)。
  • 分组垂直间距: 精确调整组件分组间的上下距离。
  • 黑暗模式: 开启/关闭黑暗模式,并支持独特的“明黄云纹模式”。
  • 鼠标悬停效果: 设置组件卡片在鼠标悬停时的动态反馈(如“上浮”)。

页脚设置

  • 显示访客统计: 独立开关控制是否展示访问数据。
  • 高度与宽度: 设置页脚高度(0 为自适应)和内容区最大宽度(默认 1280px)。
  • 间距与字号: 灵活调整页脚距离底部的偏移量及文字大小。
  • 自定义页脚内容: 支持 HTML 标签,可自由添加备案信息、版权声明或友情链接。

壁纸库

功能概述

壁纸库提供强大的背景管理功能,支持双端独立设置、自动轮播以及第三方 API 接入。

壁纸分类与管理

  • PC 与手机壁纸: 支持独立管理 PC 端和手机端的背景图片。
  • 上传与库管理: 支持本地上传图片,并可在库中预览、切换或删除。
  • 启用手机壁纸: 手机端可选择使用专门的竖屏壁纸或同步 PC 端。

动态切换与轮播

  • 随机模式: 每次访问时,从壁纸库中随机挑选背景。
  • 点击轮播: 设置自动轮播间隔(单位:分钟)。
  • 固定背景: 锁定某一张特定壁纸作为长期背景。

PC 端壁纸管理预览

PC壁纸管理

手机端壁纸管理预览

手机壁纸管理

API 接口设置与双端预览

  • 自定义 API 地址: 支持直接输入图片 URL 或第三方壁纸 API。
  • 预设快捷入口: 内置 Bing 每日壁纸、Picsum 随机风景等。
  • 视觉微调: 支持实时调节背景模糊度(Blur)与遮罩浓度(Mask)。
API接口设置

单开组件

通用开关与全局操作

桌面组件支持精细化的显示控制,您可以一键恢复默认或添加自定义组件。

  • 公开: 允许未登录访客查看该组件。
  • 启用: 控制组件是否在桌面显示。
  • 手机: 独立控制组件在移动端是否显示。
  • 自动: 部分组件支持自动行为(如随机音乐的自动播放)。
  • 恢复默认组件: 一键重置所有组件至系统初始状态。
  • + 自定义组件: 支持添加个性化组件(开发中)。

核心组件清单

单开组件预览

随机音乐

支持本地音乐上传与文件管理。

全网热搜

聚合多平台热榜信息。

备忘录

快速记录,支持编辑与持久化。

待办事项

任务清单管理。

计算器

基础数学运算工具。

收藏夹

常用链接管理。

时钟 + 天气

时间与气象信息组合。

RSS 阅读器

订阅源管理与云端同步。

日历

日期与节假日查看。

IP 信息

网络定位与 IP 展示。

时钟

数字/模拟样式显示。

天气

详细气象数据展示。

聚合搜索

多引擎切换与自定义源。

每日一言

每日精选语句推送。

侧边栏

快捷导航侧边栏设置。

宿主机状态

实时监控服务器状态。

文件传输...

便捷的文件传输工具。

高级配置:RSS 订阅管理

RSS订阅管理预览

RSS 组件支持更深层次的个性化配置,确保信息获取的及时与同步。

  • 云端同步: 开启后支持多端订阅源同步(已开启)。
  • 管理分类: 对不同的订阅源进行分类整理。
  • 新增订阅源: 点击“+ 新增订阅源”即可快速添加 RSS 地址。

订阅源实例推荐

IT 之家(最新)

https://www.ithome.com/rss/

数码科技,日更稳定

钛媒体(首页)

https://www.tmtpost.com/rss.xml

科技商业,深度分析

Readhub(每日早报)

https://readhub.cn/daily/rss

每日简报,适合通勤

少数派 (sspai)

https://sspai.com/feed

高质量数码应用、效率工具、生活方式文章。

36氪 (36Kr)

https://www.36kr.com/feed

互联网创投、商业新闻、快讯。

爱范儿 (ifanr)

https://www.ifanr.com/feed

聚焦科技产品、生活方式和未来商业。

月光博客

https://www.williamlong.info/rss.xml

关注互联网、搜索引擎、IT技术观点。

酷壳 (CoolShell)

https://coolshell.cn/feed

骨灰级程序员左耳朵耗子(陈皓)创建的技术博客,虽作者已故,但存档极具价值,且偶有社区维护更新。

高级配置:搜索引擎设置

自定义您的桌面搜索框,支持多引擎切换与优先级调整。

  • 排序与优先级: 拖动引擎左侧的三横线图标可调整显示顺序。
  • 默认设置: 一键设置百度、谷歌或 Bing 为您的默认搜索引擎。
  • URL 模板: 支持自定义搜索引擎 URL 模板(例如:`.../s?wd={q}`)。
  • 记住上次选择: 开启后将自动保留您最近一次使用的引擎。

多开组件

多开组件目前包含万能窗口和倒计时两个主要功能。

通用说明

  • 可多开: 同一组件可创建多个实例并独立配置。
  • 开关: 每个实例都支持“公开/手机/启用”独立控制。
  • 删除: 支持单实例删除,不影响其他实例。

万能窗口

万能窗口是基于 iframe 开发的,可以在当前页直接打开其他网站。需要注意的是,部分网站配置了拒绝 iframe 嵌入的策略,这类网站需要安装并启用我们的浏览器插件后才能正常显示。

万能窗口自带 3 个便捷按钮,支持 刷新视角切换(手机/PC 模式)以及 新窗口打开,方便您快速操作嵌入的网页。

万能窗口快捷按钮说明
万能窗口功能预览
浏览器插件使用说明
  • 外网/默认地址: 组件的默认访问 URL。
  • 内网地址: 在局域网环境下优先使用的 URL(内网优先)。
  • 嵌入行为: 以窗口形式嵌入网页,少数站点可能因下载、验证码或跨域策略而无法正常嵌入。
  • 状态开关: 公开、手机端、启用可分别控制。

倒计时

  • 标题: 为倒计时设置描述性标题。
  • 目标时间: 选择日期与时间,倒计时将实时显示剩余时间。
  • 实例控制: 支持公开/手机/启用独立开关与删除。

Docker 管理

宿主机状态组件

  • 组件总开关: 顶部开关控制宿主机状态组件的显示。
  • 公开访问: 允许访客查看宿主机状态。
  • 手机端显示: 控制移动端是否显示。
  • 使用模拟数据: 在无数据源或调试时使用内置示例数据。
  • 测试连接: 点击进行探针/API 的连通性测试。
  • 展示信息: 系统版本、内核、运行时长、设备标识,以及 CPU 温度/占用RAM 使用磁盘占用网络接口速率 等。

Docker 组件列表

  • 组件开关: 公开、手机端显示、支持启动/停止/重启、使用模拟数据。
  • 内网主机: 配置宿主机地址(如 192.168.1.10),用于容器的内网访问与控制。
  • 容器列表: 展示容器名称、镜像、Up 运行时长、暴露端口,以及 CPU/MEM 的实时占用。
  • 打开方式: 每个容器支持 内网打开/外网打开,并可 添加外网地址
  • 添加卡片: 将容器以卡片形式添加到桌面,便于快速访问与观察。

容器卡片与操作菜单

  • 卡片信息: 显示 CPU/MEM 叠层标识以及 NET/IO 速率指标。
  • 右键菜单: 包含 内网访问外网访问停止容器重启容器编辑卡片删除卡片 等操作。
  • 操作权限: 启停/重启需在探针或后端启用控制权限,通常仅管理员可见与可用。

数据来源与权限控制

  • 数据源配置: 可配置本地探针或后端 API 端点以获取宿主机与容器状态。
  • 跨域与安全: 如采用远端 API,需确保跨域策略与认证已正确配置。
  • 管理员可见: 容器控制相关操作默认仅管理员账号可使用。

账户管理

备份与恢复

  • 导出配置: 将当前所有设置导出为 JSON 文件,便于备份与迁移。
  • 导入配置: 上传备份文件以恢复配置,支持覆盖当前设置。
  • 设为默认模板: 将当前配置保存为系统默认模板,供初始化或重置时使用。
  • 恢复初始化: 将系统恢复到初始状态,谨慎使用(会清空现有配置)。

系统模式

  • 当前模式显示: 显示“单用户模式”或“多用户模式”。
  • 切换为多用户模式: 启用登录与权限管理,适合多人使用场景。
  • 默认管理员: 首次启用多用户模式会提供默认管理员账号与密码(通常为 admin/admin),请立即修改。
  • 保存为版本: 为当前配置输入版本名称并保存,形成可回滚的配置快照(保存位置示例:data/config_versions)。

密码与登录

  • 修改密码: 输入新密码并点击“修改”,立即生效。
  • 退出登录: 立即退出当前管理员会话。
  • 公开/私有策略: 私有分组与高级设置仅登录后可见,未登录状态仅显示公开内容。

安全建议

  • 首次登录后修改默认密码: 防止未经授权的访问。
  • 定期备份: 建议开启版本化保存,出现误操作可快速回滚。
  • 忘记密码: 在文件中搜索 "password" 字段。
    • 您会看到一串乱码(如 "$2b$10$..." ),这是加密后的密码。
    • 将其直接修改为您想要的明文密码,例如:"password": "123456"。
    • 重启服务器: 保存文件并重新启动服务器。
    • 登录: 使用新密码 123456 登录。系统在首次登录成功后会自动将其加密存储。

数据备份说明

重要: 建议定期导出配置文件(JSON 格式)。

在 "高级设置" 中点击 "导出配置" 即可下载备份文件。恢复时直接上传该文件即可覆盖当前设置。

开放中心

开放中心为进阶用户提供了高度自定义的能力,包括样式微调、脚本扩展、第三方天气源接入以及 Webhook 自动化。

🎨 自定义 CSS 与 JS

支持注入自定义 CSS 和 JavaScript 代码,实现对页面样式的精细控制和高级功能的扩展。

自定义 CSS

自定义 CSS 示例

提示:在此处输入的 CSS 将直接应用到页面,可用于微调卡片圆角、颜色等样式。

自定义 JS

自定义 JS 示例

提示:JS 代码将在页面加载时执行,可与自定义 CSS 配合实现高级交互功能。

☁️ 天气服务设置

配置您的桌面天气组件数据来源,支持多种国内外主流天气源及自定义接口。

天气服务设置预览
  • 天气源选择: 内置 Wttr.in (默认)高德地图 (AMap) 以及 和风天气 (QWeather)
  • 自定义天气源 URL: 支持输入自定义接口地址,需返回指定的 JSON 格式数据。

🔗 Webhook 设置 (内测中)

支持通过 Webhook 接收外部事件触发,实现与第三方服务的联动自动化。

Webhook 设置预览
  • Webhook 地址: 系统提供唯一的 Webhook 接收地址,可用于 STUN 穿透等场景。
  • 最新状态: 实时展示最近一次 Webhook 触发的状态与数据。

🛠️ 第三方接入

  • API 接口: 提供标准 RESTful API,支持第三方应用接入与数据交互。
  • 插件系统: 支持开发者编写插件,扩展 FlatNas 的核心功能。

关于

加入交流QQ群

扫码加入交流群
  • 群号:613835409
  • 加入方式:在 QQ 客户端中搜索群号 613835409;加群时请备注 “FlatNas”。

开源协议

  • 本项目采用 GNU AGPLv3 开源协议。
  • 如进行二次开发与部署,请遵循协议要求。