一个基于 Next.js 15 的轻量项目,用于在管理后台维护“路径 -> 目标地址/上传 HTML”规则,并在访问对应路径时进行跳转或返回页面内容。
- 后台登录(默认账号密码见下文)
- 新增/编辑/删除路由规则
- 支持目标地址跳转
- 支持上传 HTML 并按路径返回
- 路由规则持久化到本地
data/routes.json
- Next.js 15
- React 19
- TypeScript
npm cinpm run dev默认地址:http://localhost:3000
后台地址:/login
默认账号:
- 用户名:
admin - 密码:
123456
建议上线前修改默认账号密码(见
lib/auth.ts)。
下面给你两种最常见方式:
适合阿里云 ECS、腾讯云 CVM、裸机等。
- Node.js 20+
- npm 10+
- 可写目录(用于
data/routes.json和data/uploads)
# 1) 拉代码
git clone <your-repo-url>
cd trip
# 2) 安装依赖
npm ci
# 3) 构建
npm run build
# 4) 启动生产服务
npm run start默认监听 3000 端口,可结合 Nginx 做反向代理。
可将 npm run start 配置成 systemd 服务,保证开机自启与异常重启。
项目已包含与此场景相关的排障文档:BUILD_TROUBLESHOOTING.md。
npm ci
npm run build
npm run start- 一定要提交并使用
package-lock.json - 流水线里固定使用
npm ci,避免安装器不一致导致 Next.js 15 构建异常 - 确认 Codeup Webhook 已正确配置
如果需要手动触发 webhook:
./scripts/trigger-codeup-webhook.sh本项目会在运行时写入:
data/routes.jsondata/uploads/*
因此生产环境请确保:
- 进程对
data/有写权限 - 容器化部署时将
data/挂载为持久卷(否则重启后数据可能丢失)
- 若构建报错涉及
next/dist/...相对导入 invariant,请先看:BUILD_TROUBLESHOOTING.md - 若 push 后没有自动构建,优先检查 Codeup Webhook 配置
npm run dev # 开发
npm run build # 生产构建
npm run start # 启动生产服务
npm run lint # 代码检查你的服务器是用 systemd 管理 Docker,可先执行:
systemctl start docker
systemctl enable dockerdocker compose build --pull
docker compose up -d
# 容器内部执行 npm run start访问:http://<服务器IP>:3000
Dockerfile:保留完整项目并通过next start启动docker-compose.yml:容器启动与端口映射(3000:3000)data/挂载到容器/app/data,用于持久化路由和上传文件
已提供脚本:
scripts/deploy-update.sh:拉取远端代码;有变更则docker compose down/build/up -dscripts/pm2-auto-update.sh:循环调用deploy-update.shecosystem.config.cjs:PM2 启动配置
# 安装 PM2(若尚未安装)
npm i -g pm2
# 启动自动部署任务
pm2 start ecosystem.config.cjs
# 设置开机自启
pm2 startup
pm2 save可以在 ecosystem.config.cjs 里修改:
DEPLOY_BRANCH:要跟踪的分支(默认main)DEPLOY_REMOTE:远端名(默认origin)INTERVAL_SECONDS:轮询间隔秒数(默认300)