收起左侧

NavPage - 现代化智能导航面板

25
回复
828
查看
[ 复制链接 ]

10

主题

24

回帖

0

牛值

初出茅庐

NavPage - 现代导航面板

一个现代化的服务器应用导航面板,集成服务管理、智能搜索功能和综合系统监控。采用未来科技风格设计,具有实时数据可视化功能。

📸 主页预览

NavPage主页界面

NavPage主页界面展示 - 包含搜索功能、服务网格布局和系统监控面板

✨ 核心功能

🏠 现代化主界面

  • 智能搜索栏:居中设计,支持多搜索引擎切换
  • 服务导航网格:卡片式布局,支持分类筛选和状态显示
  • 实时系统监控:CPU、内存、网络、磁盘等多维度监控
  • 未来科技风格:深色主题配合霓虹光效与动态粒子背景

🔍 智能搜索体验

  • 多引擎支持:默认集成百度、必应等搜索引擎
  • 智能识别:自动识别URL并直接跳转
  • 历史记录:保存搜索历史,支持快速重搜
  • 输入提示:基于历史记录的智能补全

📊 综合系统监控

  • 实时数据:WebSocket实时推送,每3秒更新
  • 多指标监控:CPU核心、内存分布、磁盘IO、网络流量
  • 可视化展示:仪表盘、进度条、趋势图等多种展示方式
  • 容器友好:支持在Docker容器中监控宿主机系统

⚙️ 集中式配置管理

  • 服务管理:添加、编辑、删除应用服务
  • 分类管理:自定义服务分类和主题颜色
  • 搜索配置:管理搜索引擎列表和优先级
  • 数据备份:JSON格式配置导入导出

🚀 快速开始

环境要求

  • Node.js 18.0.0 或更高版本
  • npm 或 yarn 包管理器
  • 现代浏览器(Chrome 90+、Firefox 88+、Safari 14+)

本地开发

# 克隆项目
git clone https://github.com/dqsq2e2/navpage.git
cd navpage

# 安装依赖
npm install

# 启动开发服务器(前端+后端)
npm run dev

# 或分别启动
npm run client  # 前端开发服务器(端口3000)
npm run server  # 后端服务器(端口5000)

生产构建

# 构建生产版本
npm run build

# 预览生产构建
npm run preview

🐳 Docker 部署

镜像源选择

NavPage 提供两个镜像源供您选择:

镜像源 镜像地址 特点 推荐场景
Docker Hub dqsq2e2/navpage:latest 全球访问,自动构建 国际网络,GitHub Actions自动推送
阿里云镜像仓库 crpi-36bectlts4f4dtww.cn-shenzhen.personal.cr.aliyuncs.com/dqsq2e2/navpage:latest 国内加速,稳定快速 中国大陆服务器部署

使用 Docker Compose(推荐)

创建 docker-compose.yml 文件:

services:
  navpage:
    # 请从以下两个镜像地址中任选一个使用:
    image: dqsq2e2/navpage:latest
    # image: crpi-36bectlts4f4dtww.cn-shenzhen.personal.cr.aliyuncs.com/dqsq2e2/navpage:latest
    container_name: navpage-app
    restart: unless-stopped
    ports:
      - "5833:5834"  # 主机端口:容器端口
    environment:
      - NODE_ENV=production
      - PORT=5834
    volumes:
      - /path/to/data:/app/server/data  # ⚠️ 重要:请确保该目录具有读写权限,否则可能导致密钥创建失败
      - /path/to/logs:/app/logs
      # 系统监控需要的挂载点(必须)
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
      # 可选:Docker容器监控
      - /var/run/docker.sock:/var/run/docker.sock:ro
    privileged: true  # 获取系统信息需要特权
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5834/api/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
    networks:
      - navpage-network

volumes:
  navpage-data:
    driver: local
  navpage-logs:
    driver: local

networks:
  navpage-network:
    driver: bridge

启动服务:

docker-compose up -d

直接使用 Docker 命令

# 拉取并运行预构建镜像(选择其中一个)
# Docker Hub镜像
docker pull dqsq2e2/navpage:latest

# 或阿里云镜像
docker pull crpi-36bectlts4f4dtww.cn-shenzhen.personal.cr.aliyuncs.com/dqsq2e2/navpage:latest

# 运行容器
docker run -d \
  --name navpage-app \
  --restart unless-stopped \
  -p 5833:5834 \
  -e NODE_ENV=production \
  -e PORT=5834 \
  -v /path/to/data:/app/server/data \
  -v /path/to/logs:/app/logs \
  -v /proc:/host/proc:ro \
  -v /sys:/host/sys:ro \
  -v /:/rootfs:ro \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --privileged \
  dqsq2e2/navpage:latest  # 或使用阿里云镜像地址

本地构建镜像

如需自定义构建:

# 克隆代码
git clone https://github.com/dqsq2e2/navpage.git
cd navpage

# 构建镜像
docker build -t my-navpage .

# 运行自定义镜像
docker run -d \
  --name my-navpage-app \
  -p 5833:5834 \
  -v /proc:/host/proc:ro \
  -v /:/rootfs:ro \
  my-navpage

环境变量配置

变量名 默认值 说明
NODE_ENV production 运行环境:production/development
PORT 5834 应用监听端口
HOST_MOUNT_POINT /rootfs 主机文件系统挂载点(监控用)

端口说明

  • 5833:外部访问端口(可在docker-compose中修改)
  • 5834:容器内部应用端口(固定)

📁 项目结构

navpage/
**── src/                        # React前端源码
**   **── components/             # 可复用组件
**   **   **── Login.tsx           # 登录组件
**   **   **── SearchBar.tsx       # 搜索栏组件
**   **   **── ServiceGrid.tsx     # 服务网格组件
**   **   **── SystemMonitor.tsx   # 系统监控组件
**   **── contexts/               # React上下文
**   **   **── AuthContext.tsx     # 认证状态管理
**   **── utils/                  # 工具函数
**   **   **── api.ts             # API请求封装
**   **   **── configService.ts   # 配置服务
**   **── types/                  # TypeScript类型定义
**── server/                     # Node.js后端
**   **── modules/               # 功能模块
**   **   **── auth.js           # 用户认证
**   **   **── config.js         # 配置管理
**   **   **── system.js         # 系统监控
**   **   **── websocket.js      # WebSocket通信
**   **── index.js              # 服务器入口
**── public/                     # 静态资源
**── .github/workflows/         # GitHub Actions工作流
**── Dockerfile                 # Docker镜像构建
**── docker-compose.yml         # Docker Compose配置
**── package.json               # 项目配置

🎨 界面设计

视觉风格

  • 未来科技主题:深色背景配蓝色霓虹光效
  • 玻璃拟态效果:半透明卡片与背景模糊
  • 动态粒子动画:浮动粒子营造科技氛围
  • 响应式布局:完美适配桌面端与移动端

交互体验

  • 实时数据更新:系统监控数据3秒自动刷新
  • 流畅动画:卡片悬停、页面切换等交互动画
  • 智能反馈:操作状态实时提示
  • 键盘导航:支持快捷键操作

🔧 配置说明

搜索引擎配置

默认支持:

  • 百度:https://www.baidu.com/s?wd={query}
  • 必应:https://www.bing.com/search?q={query}

添加自定义引擎:https://example.com/search?q={query},使用 {query} 作为查询参数占位符。

服务管理

通过Web界面管理:

  1. 添加服务:名称、URL、图标、描述、分类
  2. 分类管理:创建分类,设置图标和颜色
  3. 状态监控:自动检测服务可用性

系统监控配置

系统监控需要以下挂载点:

volumes:
  - /proc:/host/proc:ro      # CPU、进程信息
  - /sys:/host/sys:ro        # 系统信息
  - /:/rootfs:ro            # 磁盘使用情况

📡 API 接口

系统监控

GET /api/system-stats       # 获取系统状态
WebSocket /socket.io       # 实时数据推送

用户认证

POST /api/auth/login       # 用户登录
GET  /api/auth/verify      # 验证会话
POST /api/auth/logout      # 用户登出

配置管理

GET  /api/config/services    # 获取服务列表
POST /api/config/services    # 更新服务配置
GET  /api/config/engines     # 获取搜索引擎
POST /api/config/engines     # 更新搜索引擎

⚡ 技术架构

前端技术栈

  • React 18 + TypeScript:组件化开发
  • Vite:快速构建与热重载
  • Socket.IO Client:实时通信
  • CSS Modules:样式隔离

后端技术栈

  • Express.js:Web服务器框架
  • Socket.IO:WebSocket实时通信
  • 文件系统API:直接读取/proc系统信息
  • JWT认证:安全的用户认证

系统监控实现

  • 无第三方依赖:直接解析Linux系统文件
  • 高效读取:缓存机制减少文件IO
  • 容器化支持:通过挂载访问宿主机信息
  • 实时推送:WebSocket保持连接

🔐 安全特性

  • 密钥认证系统:自定义密钥管理
  • 会话安全:HTTP-only Cookie + JWT Token
  • 数据加密:密钥哈希存储(SHA-256)
  • API保护:关键接口需要认证
  • 容器安全:只读挂载,最小权限原则

🚀 高级部署

Docker中的系统监控

启用完整监控功能:

  1. 必须挂载的目录

    -v /proc:/host/proc:ro    # CPU和进程信息
    -v /sys:/host/sys:ro      # 系统参数
    -v /:/rootfs:ro          # 磁盘信息
    
  2. 可选监控

    -v /var/run/docker.sock:/var/run/docker.sock:ro  # Docker容器监控
    
  3. 权限要求

    --privileged  # 或使用更细粒度的--cap-add参数
    

支持的监控指标

  • ✅ CPU使用率(总体和各核心)
  • ✅ 内存使用(总量、已用、缓存、可用)
  • ✅ 磁盘空间和IO速度
  • ✅ 网络流量(上传/下载)
  • ✅ 系统运行时间和负载
  • ✅ 进程数量统计

🙏 致谢

感谢以下项目和资源:

📞 支持与联系

  • GitHub Issues:报告问题或功能请求
  • 文档:本README文件包含完整使用说明
  • 社区:欢迎提交Pull Request参与改进

NavPage - 让服务器导航与管理更简单、更直观。

收藏
送赞 1
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

8

主题

28

回帖

0

牛值

初出茅庐

支持内外网自动切换吗?

2

主题

4

回帖

0

牛值

江湖小虾

navpage Pulling

navpage Error pull access denied for crpi-36bectlts4f4dtww.cn-shenzhen.personal.cr.aliyuncs.com/navpage/navpage, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

Error response from daemon: pull access denied for crpi-36bectlts4f4dtww.cn-shenzhen.personal.cr.aliyuncs.com/navpage/navpage, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

Exited:0

镜像拉取失败

已修复镜像地址  详情 回复
3 天前
我也是这个提示  详情 回复
5 天前

0

主题

46

回帖

0

牛值

江湖小虾

预览图挂了

0

主题

3

回帖

0

牛值

江湖小虾

构建不了

navpage Pulling

navpage Error pull access denied for crpi-36bectlts4f4dtww.cn-shenzhen.personal.cr.aliyuncs.com/navpage/navpage, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

Error response from daemon: pull access denied for crpi-36bectlts4f4dtww.cn-shenzhen.personal.cr.aliyuncs.com/navpage/navpage, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

Exited:0

已修复镜像地址  详情 回复
3 天前

46

主题

166

回帖

160

牛值

社区共建团

社区上线纪念勋章社区共建团荣誉勋章飞牛百度网盘玩家fnOS1.0上线纪念勋章

好项目,点赞victory

<strike>正值爱玩的年纪</strike>,
<strike>qdnas.icu</strike>

0

主题

46

回帖

0

牛值

江湖小虾

小秘密1988 发表于 2026-1-14 17:11
navpage Pulling
navpage Error pull access denied for crpi-36bectlts4f4dtww.cn-shenzhen.personal.cr.a ...

我也是这个提示

0

主题

46

回帖

0

牛值

江湖小虾

拉取地址改一下

image: crpi-36bectlts4f4dtww.cn-shenzhen.personal.cr.aliyuncs.com/dqsq2e2/navpage:latest

0

主题

46

回帖

0

牛值

江湖小虾

可以正常启动了,但是创建密钥登陆成功马上又跳转回登录界面

image.png

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
要用https访问  详情 回复
4 天前

0

主题

46

回帖

0

牛值

江湖小虾

8

主题

28

回帖

0

牛值

初出茅庐

镜像都404了,为啥没上传到dockerhub
已有dockerhub镜像  详情 回复
3 天前

8

主题

28

回帖

0

牛值

初出茅庐

登录不进去,一直重复要求输入密钥
之前要https访问,现在已修复,重新拉取镜像即可  详情 回复
3 天前

10

主题

24

回帖

0

牛值

初出茅庐

4 天前 楼主 显示全部楼层
L·Z·M 发表于 2026-1-15 09:29
可以正常启动了,但是创建密钥登陆成功马上又跳转回登录界面
之前要https访问,现在已修复,重新拉取镜像即可

10

主题

24

回帖

0

牛值

初出茅庐

3 天前 楼主 显示全部楼层
muyijiang 发表于 2026-1-15 11:43
登录不进去,一直重复要求输入密钥

之前要https访问,现在已修复,重新拉取镜像即可
问题太多了,无法创建密钥,文件夹权限也给了,包括也给了 依旧无法创建秘钥  详情 回复
3 天前
还是一样一直回到登录界面  详情 回复
3 天前

10

主题

24

回帖

0

牛值

初出茅庐

3 天前 楼主 显示全部楼层
muyijiang 发表于 2026-1-15 11:39
镜像都404了,为啥没上传到dockerhub

已有dockerhub镜像

10

主题

24

回帖

0

牛值

初出茅庐

3 天前 楼主 显示全部楼层
dddata 发表于 2026-1-14 21:19
构建不了
navpage Pulling
navpage Error pull access denied for crpi-36bectlts4f4dtww.cn-shenzhen.pers ...

已修复镜像地址

10

主题

24

回帖

0

牛值

初出茅庐

3 天前 楼主 显示全部楼层
小秘密1988 发表于 2026-1-14 17:11
navpage Pulling
navpage Error pull access denied for crpi-36bectlts4f4dtww.cn-shenzhen.personal.cr.a ...

已修复镜像地址

0

主题

46

回帖

0

牛值

江湖小虾

coolsjc 发表于 2026-1-16 01:27
之前要https访问,现在已修复,重新拉取镜像即可

还是一样一直回到登录界面
删除镜像重建,可能是镜像没拉到最新的,无法创建密钥就自己映射密钥存放路径,文件权限给707  详情 回复
3 天前

8

主题

28

回帖

0

牛值

初出茅庐

coolsjc 发表于 2026-1-16 01:27
之前要https访问,现在已修复,重新拉取镜像即可

问题太多了,无法创建密钥,文件夹权限也给了,包括也给了下面的权限变量
  1.       - PUID=0
  2.       - PGID=0
  3.       - UMASK=022
复制代码


依旧无法创建秘钥
你是自己映射的文件夹吗,文件夹权限改成707  详情 回复
3 天前

10

主题

24

回帖

0

牛值

初出茅庐

3 天前 楼主 显示全部楼层
muyijiang 发表于 2026-1-16 10:42
问题太多了,无法创建密钥,文件夹权限也给了,包括也给了下面的权限变量

你是自己映射的文件夹吗,文件夹权限改成707
可以了  详情 回复
3 天前
是啊,映射的自己的文件,权限也改了,也尝试以root权限运行容器,都无法创建秘钥  详情 回复
3 天前

10

主题

24

回帖

0

牛值

初出茅庐

3 天前 楼主 显示全部楼层
L·Z·M 发表于 2026-1-16 09:47
还是一样一直回到登录界面

删除镜像重建,可能是镜像没拉到最新的,无法创建密钥就自己映射密钥存放路径,文件权限给707

8

主题

28

回帖

0

牛值

初出茅庐

coolsjc 发表于 2026-1-16 11:06
你是自己映射的文件夹吗,文件夹权限改成707

是啊,映射的自己的文件,权限也改了,也尝试以root权限运行容器,都无法创建秘钥
改成777呢,可以看看你的配置或日志吗  详情 回复
3 天前

0

主题

46

回帖

0

牛值

江湖小虾

image.png
image.png

可以了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

10

主题

24

回帖

0

牛值

初出茅庐

3 天前 楼主 显示全部楼层
muyijiang 发表于 2026-1-16 11:34
是啊,映射的自己的文件,权限也改了,也尝试以root权限运行容器,都无法创建秘钥 ...

改成777呢,可以看看你的配置或日志吗

4

主题

54

回帖

0

牛值

初出茅庐

能否改成sun-panel这种分类方式,优点:分类清晰、总揽全局

PixPin_2026-01-18_10-39-37.png

nen

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

6

主题

39

回帖

0

牛值

初出茅庐

无法创建秘钥

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则