通信技术部前后端一键部署说明
本仓库包含两个子工程:
department-api:Node.js + Express 后端,提供 API 与静态资源department-web:React 前端,构建后由后端托管
已提供一键部署脚本 deploy.sh 和 systemd 服务 department-api.service,用于实现:
- 一键安装依赖 + 构建前端 + 安装/更新服务
- 服务后台常驻运行
- 开机自启与异常自动重启
环境要求
- 操作系统:常见 Linux 发行版(支持 systemd,如 Ubuntu / CentOS 7+)
- 已安装:
- Node.js(建议 16+)
- npm
- bash
- systemd(默认存在于大多数现代 Linux)
- 拥有 sudo 权限的用户
首次部署步骤
- 克隆或拷贝本项目到服务器,例如:
cd /media/media_14t_sda1
git clone <your-repo> web # 若已存在则略过
cd web
- 检查并按需修改 systemd 服务配置(可选但推荐):
- 文件:
department-api.service - 重点字段:
WorkingDirectory:后端目录,默认/media/media_14t_sda1/web/department-apiEnvironment=PORT=3001:服务端口Environment=JWT_SECRET=change-me:JWT 密钥(生产环境务必改成强随机字符串)
- 运行一键部署脚本:
cd /media/media_14t_sda1/web
bash deploy.sh
脚本主要做的事情:
- 安装后端依赖:
department-api - 安装并构建前端:
department-web→department-web/build - 将
department-api.service拷贝到/etc/systemd/system/ - 执行:
sudo systemctl daemon-reloadsudo systemctl enable department-api.service(设置开机自启)sudo systemctl restart department-api.service(启动/重启服务)
运行过程中会需要输入 sudo 密码,这是正常的。
- 验证服务状态:
sudo systemctl status department-api.service
如果看到 Active: active (running),表示服务已在后台运行。
- 访问地址:
- 前端页面与 API 统一入口:
http://<服务器IP>:3001
- 常见路径:
- 前端 SPA:根路径
/ - API:
/api/... - 静态资料:
/uploads/...
- 前端 SPA:根路径
日常更新代码的流程
场景一:有前端改动(推荐统一用一键脚本)
- 在服务器上更新代码,例如:
cd /media/media_14t_sda1/web
git pull # 或者其他同步方式
- 重新一键部署(重新安装依赖 + 构建前端 + 重启服务):
cd /media/media_14t_sda1/web
bash deploy.sh
执行完成后:
- 新版本前端构建产物会覆盖旧的
department-web/build - systemd 服务会自动重启,加载最新代码
场景二:仅后端小改动(无需重建前端)
如果只改了后端逻辑,且不想每次都重新 npm install / build,可以:
- 同步代码后,直接重启服务:
sudo systemctl restart department-api.service
- 查看状态确认:
sudo systemctl status department-api.service
查看日志与排错
查看最近 100 行日志:
sudo journalctl -u department-api.service -n 100
实时滚动查看日志:
sudo journalctl -u department-api.service -f
若服务未能启动,可重点检查:
- Node.js 是否安装、版本是否太旧
department-api.service中的WorkingDirectory路径是否与你实际部署路径一致- 端口是否被占用(如已有其他服务占用 3001)
JWT_SECRET是否为空或包含非法字符(推荐使用简单的字母数字组合)
停止服务与取消开机自启
- 停止服务(临时):
sudo systemctl stop department-api.service
- 取消开机自启:
sudo systemctl disable department-api.service
访问入口总结
- 后端 + 前端统一服务:
department-api(systemd 管理) - 默认端口:
3001 - 部署 / 更新统一命令:
cd /media/media_14t_sda1/web
bash deploy.sh
如果后续你调整了目录或端口,只需要同步修改:
department-api.service中的WorkingDirectory、PORT等环境变量- 如有需要,也可以把服务名从
department-api.service改成公司内部标准命名。
Description
Languages
Shell
100%