Skip to content

1. 本地部署总览 ​

本地/内网部署把网页、接口和数据库放在学校自己管理的机器上,不依赖 Vercel 或 Neon。它适合教室局域网、无外网数据库或要求数据留在校内的环境。

两种方式 ​

对比项方式一:Docker Compose方式二:无 Docker(Node)
数据库Compose 内嵌 PostgreSQL 16 容器本机或内网 PostgreSQL 14+
需要安装Docker + Docker ComposeNode.js 24 与 PostgreSQL
启动命令docker compose up -d --buildnpm install && npm run serve
数据持久化Docker 卷 novora_pgdataPostgreSQL 数据目录
升级方式git pull + docker compose up -d --buildnpm run update:local
隔离性应用与数据库都在容器里,删除容器不影响数据卷依赖本机环境,升级 Node 或系统可能影响运行
推荐程度推荐,完全离线也能运行适合开发调试或已有 PostgreSQL 的环境

新手直接选方式一。方式二更适合已经在跑 PostgreSQL、或需要频繁改代码的场景。

前置要求 ​

通用

  • 一台可长期开机的电脑或服务器(教室机、NAS、机房主机均可);
  • 规划固定局域网 IP,例如 192.168.1.10,避免重启后地址变化导致大屏失联;
  • 能从 GitHub 拉取源码:初始化时联网一次即可,之后可完全离线运行。

方式一

bash
docker --version
docker compose version

两条命令都能输出正常版本号即可。没有安装 Docker 时,按对应系统下载 Docker Desktop(Windows / macOS)或 Docker Engine(Linux)。

方式二

bash
node --version    # 需要 v24(项目声明 24.x)
psql --version    # 需要 PostgreSQL 14 或更高

与云端部署的关系 ​

两种部署方式共用同一份代码、同一套数据表结构。区别只在运行环境:

主题Vercel 云端本地 / 内网
网页与接口Vercel Functions + Edge本机 Node 进程
数据库Neon内嵌 PostgreSQL 16 或自建实例
更新方式Sync fork + Vercel 自动部署update-local.sh / .bat
环境变量DATABASE_URL、ADMIN_PASSWORD、VERCEL_DEPLOY_HOOK_URLADMIN_PASSWORD(无 Docker 时再加 DATABASE_URL)
访问入口自定义域名局域网 IP,或自建反向代理 + 域名

同一份源码可以同时部署云端和本地两套实例,互不影响。如果你还没决定用哪种方式,先回到选择部署方式。

本地部署不需要什么 ​

  • 不需要注册 Neon、Vercel 账号;
  • 不需要配置 VERCEL_DEPLOY_HOOK_URL(后台相关按钮会自动隐藏);
  • 不需要公网 IP。核心的排考、大屏、管理后台功能在纯内网可用。

内网环境下会自动降级的功能 ​

下列功能需要访问外部服务,纯内网环境下会自动跳过,不影响核心使用:

text
telemetry        遥测上报
error-report     错误上报
announcement-images  公告图片
update-check     版本检查

需要在纯内网环境提供这些能力时,需要在服务器上放通对应的出网规则,或自建对应的服务端(见 Vercel 环境变量文档中的遥测覆盖变量)。

下一步 ​

  1. 已装好 Docker → 进入Docker Compose 部署
  2. 想用本机 Node 与 PostgreSQL → 进入无 Docker 部署
  3. 需要域名或公网访问 → 部署完成后读反向代理与 HTTPS
  4. 部署完成 → 读初始化与验收

Novora 部署与维护文档