# [分享] NOWEN:一款高颜值的 NAS 导航页 & 系统监控面板 (React+Docker) - V2EX
爱意满满的作品展示区。
cropflre

# [分享] NOWEN:一款高颜值的 NAS 导航页 & 系统监控面板 (React+Docker)

  •  
  •   cropflre Feb 4 1337 views
    This topic created in 101 days ago, the information mentioned may be changed or developed.

    [分享] NOWEN:一款高颜值的 NAS 导航页 & 系统监控面板 (React+Docker)

    大家好,我是 NOWEN 的开发者。

    作为一名前端开发工程师和 NAS 玩家,我一直想找一个既美观又能直观查看服务器状态的导航页。市面上虽然已有不少优秀产品(如 Sun-panel, Homarr 等),但总觉得在 UI 动效和交互体验上还能打磨得更好。

    于是利用业余时间,我开发了 **NOWEN (星云门户)**。

    这是一个基于 React + TypeScript + Node.js 开发的现代化个人起始页。在设计上,我追求“深空”与“理性”的结合,使用了极光背景和大量毛玻璃效果;在功能上,它不仅是书签导航,更是你的 NAS 仪表盘。

    核心特性

    • 沉浸式设计:全站采用深空极光主题,配合 Framer Motion 驱动的平滑过渡和 3D 卡片微交互,拒绝生硬的点击反馈。
    • NAS 系统监控:集成实时监控面板,直观展示服务器的 CPU 占用、内存使用、磁盘空间和网络流量(支持 Docker 部署下的宿主机监控)。
    • Spotlight 全局搜索:致敬 macOS 的 Cmd/Ctrl + K 交互,全键盘操作即可快速过滤书签或触发系统指令,手不离键盘即可直达目标。
    • Bento 网格布局:采用流行的 Bento 风格,支持书签分组、拖拽排序,让你的服务入口井井有条。
    • 隐私与管理:内置完善的后台管理系统,支持私有化部署,数据存储于本地 SQLite ,完全掌握在自己手中。
    • Docker 开箱即用:适配 x86 和 ARM64 架构,镜像体积小,资源占用低。

    技术栈

    • Frontend: React 18, Vite, Tailwind CSS, Framer Motion
    • UI / Components: Aceternity UI, Radix UI
    • Backend: Node.js (Express)
    • Database: SQLite (无需配置繁琐的数据库服务)
    • DevOps: Docker & Docker Compose

    界面预览

    (建议在此处插入 2-3 张截图)

    桌面端预览 桌面端主页:极光背景与 Bento 布局

    移动端适配 移动端完美适配

    如何部署

    提供了 Docker Compose 一键启动,非常简单:

    version: '3' services: nowen: image: cropflre/nowen:latest # (请替换为你实际上传的 Docker Hub 镜像名) container_name: nowen ports: - "3000:3000" volumes: - ./data:/app/server/data restart: unless-stopped 

    GitHub: [https://github.com/cropflre/NOWEN]

    目前项目还在快速迭代中,不仅限于 NAS 导航,未来计划加入更多实用的小组件。

    如果你对 UI 细节有强迫症,或者正在寻找一个高颜值的 NAS 首页,欢迎试用! 如果有任何 Bug 或建议,欢迎在评论区或 Issue 提出。

    如果觉得不错,求一个 Star 支持,感谢!

    cropflre
        1
    cropflre  
    OP
       Feb 5
    体验地址:nowen.vercel.app
    cropflre
        2
    cropflre  
    OP
       Feb 5
    要数据还是得要部署项目才行,这只是看前端页面。
    cropflre
        3
    cropflre  
    OP
       Feb 12
    体验地址: http://118.145.185.221/
    cropflre
        4
    cropflre  
    OP
       Feb 26
    v0.2.0 (2026-02-26)
    新功能
    ARM64 多架构支持:Docker 镜像同时支持 linux/amd64 和 linux/arm64
    适配瑞芯微 RK3588 、RK3576 、RK3566 等 ARM64 开发板
    支持 Apple Silicon (M1/M2/M3) 设备
    Dockerfile 自动安装 ARM64 原生模块编译工具链( python3/make/g++),构建完成后自动清理
    新增 build-multiarch.sh 多架构一键构建脚本
    启动时打印当前 CPU 架构,便于确认运行环境
    AI 智能标签:添加书签时自动调用 AI 生成适配标签
    URL 分析完成后自动触发 AI 魔法(无需手动点击)
    自动填充标签 + 分类 + 优化描述
    新增 AI 设置面板、标签管理面板
    书签标签展示:书签卡片上展示彩色标签药丸
    基于标签名哈希生成 8 种柔和彩色(蓝/绿/橙/红/紫/粉/青/黄绿)
    分类区域和置顶区域卡片均展示标签
    最多显示 3 个标签,超出显示 +N
    v0.1.9 (2026-02-25)
    新功能
    移动端能量球自由拖拽:移动端悬浮导航球支持自由拖拽到屏幕任意位置
    基于 Pointer Events 实现原生拖拽,6px 阈值精准区分拖拽与点击
    位置通过 localStorage 持久化,下次打开自动恢复
    拖拽时蓝色光晕 + 微放大视觉反馈
    点击展开花瓣式菜单,菜单项支持触觉振动反馈 (navigator.vibrate)
    移动端底部状态栏:新增固定底部状态栏,集成系统监控 Ticker
    通过 leftSlot 插槽渲染实时系统状态( CPU/内存/网速等)
    玻璃模糊背景效果,支持 iOS 安全区域适配( safe-area-inset-bottom )
    能量球与底部栏完全独立,互不干扰
    桌面端 Dock 自由拖拽:桌面端浮动 Dock 支持拖拽到任意位置
    位置通过 localStorage 持久化( key: desktop-dock-pos ),默认居中靠底
    拖拽时边框发光反馈,鼠标变为 grabbing
    macOS 风格磁性放大效果(鱼眼缩放)
    移动端 Bento 单列布局:移动端书签网格从两列改为单列,阅读更舒适
    系统监控三形态切换:迷你胶囊 / 状态栏 / 全功能仪表盘三种模式无缝切换
    视图模式通过 localStorage 持久化
    形态切换带 scale + fade + slide 平滑动画
    仪表盘日间模式透明化:日间模式下监控仪表盘背景完全透明,与页面融为一体
    子卡片 DataBlock 背景同步透明化,边框降低至 30% 透明度
    Bug 修复
    修复移动端能量球点击无法展开菜单的问题(去除 preventDefault 干扰)
    修复移动端迷你模式状态栏未居中的问题
    优化进度条动画性能,从 Framer Motion 改为原生 CSS Transition
    About     Help     Advertise     Blog     API     FAQ     Solana     895 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 20:22 PVG 04:22 LAX 13:22 JFK 16:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86