Skip to content

About

ServerPage - 基于 NasPage 的功能增强导航页(分类排序、用户视角状态探测、登录修复)

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ServerPage

轻量、可自托管的 NAS 服务导航页。基于 NasPage 持续增强,用于管理内外网服务入口,提供分类排序、用户视角在线状态、内外网智能切换等功能。

特性

导航管理

  • 站点分类管理,支持 上移/下移 或 排序数(越小越靠前) 两种排序方式,互不干扰
  • 自动获取站点 favicon,支持 Manifest、多候选图标、公共图标库和手动上传
  • 分类、站点、热键、配置支持 JSON 导入导出

网络与状态

  • 自动判断内外网环境,也可手动切换(自动 → 内网 → 外网 → 自动 三态循环)
  • 状态灯由 浏览器(你的设备)直接探测:反映"当前这台设备能否访问",而非服务器所在网络——内网、外网、虚拟局域网(Tailscale 类)各按实际可达性显示
  • 切换网络/模式时状态即时刷新,未登录访客也能看到在线状态
  • 内外网地址可分别配置(支持同一网段的字面 IP)

体验

  • Ctrl + K 全局搜索,macOS/iOS 显示并支持 ⌘ + K
  • 深色 / 浅色 / 跟随系统三种主题
  • 自定义背景、玻璃面板、面板不透明度
  • 本地时间滚动显示与中文时段问候
  • SQLite 单文件存储,备份迁移方便

安全与登录

  • 内网 HTTP 部署下登录正常(Secure Cookie 兼容修复),管理会话有效期 30 天
  • 管理密码使用带随机盐的 scrypt 保存,旧格式自动升级
  • 图标与背景按真实文件头校验,阻止 SSRF 访问内网服务

Docker 部署

容器内端口固定为 4027,示例将宿主机端口设为 4028,数据目录按你的 NAS 环境修改,保持映射到容器的 /app/data 即可。

name: serverpage

services:
  serverpage:
    image: gujngh/serverpage:latest
    container_name: serverpage
    restart: unless-stopped
    ports:
      - "4028:4027"
    volumes:
      - ./data:/app/data
    environment:
      - TZ=Asia/Shanghai
docker compose up -d

启动后访问 http://NAS_IP:4028,首次打开设置时创建管理密码。

环境变量

变量 默认值 说明
NASPAGE_PUBLIC_STATUS 0 设为 1 后允许未登录访客获取站点在线状态
NASPAGE_TRUST_PROXY 0 仅在可信反向代理后设为 1

本地开发

需要 Node.js 22 和 pnpm 9:

pnpm install
pnpm dev

默认开发地址为 http://localhost:3000,开发数据保存在项目的 data/ 目录。

完整检查:

pnpm test
pnpm typecheck
pnpm lint
pnpm build

技术栈

Next.js 16、React 19、TypeScript、Tailwind CSS 4、Motion、dnd-kit、Lucide、SQLite、Vitest。

开源与致谢

ServerPage 基于 smhjw/NasPage(其上游为 52Lxcloud/HomeDir)持续增强。内置服务图标的来源记录在 public/service-icons/SOURCES.md。

本项目采用 MIT License。

About

ServerPage - 基于 NasPage 的功能增强导航页(分类排序、用户视角状态探测、登录修复)

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages