4.9 KiB
4.9 KiB
jsite 自动化部署和管理脚本
这是一个集成了完整部署和日常管理功能的自动化脚本,支持多种任务模式。
功能特性
- 🚀 完整部署:一键部署完整的jsite环境
- 🏗️ 网站管理:创建、删除、构建、启动、停止、重启网站
- 📊 状态监控:查看网站运行状态和日志
- 🔧 环境管理:Docker、Node.js、PM2、Traefik等环境组件
- ⚡ 智能端口分配:自动分配和管理端口资源
使用方法
基本语法
./install_jsite.sh --mode <任务模式> [其他参数]
支持的任务模式
| 模式 | 功能 | 示例 |
|---|---|---|
deploy |
完整部署模式(默认) | --mode deploy --site-name myproject |
create |
创建新网站 | --mode create --site-name myproject --git-repo <仓库地址> |
delete |
删除网站 | --mode delete --site-name myproject |
build |
构建网站 | --mode build --site-name myproject |
start |
启动网站 | --mode start --site-name myproject |
stop |
停止网站 | --mode stop --site-name myproject |
restart |
重启网站 | --mode restart --site-name myproject |
status |
查看网站状态 | --mode status --site-name myproject |
list |
列出所有网站 | --mode list |
logs |
查看网站日志 | --mode logs --site-name myproject |
常用参数
| 参数 | 说明 | 默认值 |
|---|---|---|
--mode |
任务模式 | deploy |
--site-name |
网站名称 | jingrow |
--git-repo |
Git仓库地址 | http://git.jingrow.com:3000/jsite/jingrow |
--node-version |
Node.js版本 | 22 |
--start-port |
起始端口 | 3001 |
--site-url |
网站域名 | starrbud.com |
使用示例
1. 完整部署新项目
./install_jsite.sh \
--mode deploy \
--site-name myproject \
--git-repo http://git.example.com/myproject \
--site-url myproject.com \
--public-ip 8.217.167.199
2. 创建新网站
./install_jsite.sh \
--mode create \
--site-name myproject \
--git-repo http://git.example.com/myproject \
--site-url myproject.com
3. 构建和启动网站
# 构建项目
./install_jsite.sh --mode build --site-name myproject
# 启动项目
./install_jsite.sh --mode start --site-name myproject
4. 管理网站状态
# 查看状态
./install_jsite.sh --mode status --site-name myproject
# 停止网站
./install_jsite.sh --mode stop --site-name myproject
# 重启网站
./install_jsite.sh --mode restart --site-name myproject
5. 查看所有网站
./install_jsite.sh --mode list
6. 查看日志
./install_jsite.sh --mode logs --site-name myproject
工作流程
完整部署流程 (deploy)
- 创建jingrow用户
- 安装Docker(可选跳过)
- 安装Node.js和NVM
- 克隆项目代码
- 创建环境配置文件
- 安装项目依赖
- 安装PM2并启动项目
- 安装Traefik并配置反向代理
网站管理流程
- create: 克隆代码 → 分配端口 → 创建配置 → 提示下一步
- build: 安装依赖 → 构建项目
- start: 检查状态 → 分配端口 → 启动PM2进程
- stop: 停止PM2进程
- restart: 重启PM2进程或启动(如果未运行)
- delete: 停止进程 → 清理配置 → 删除文件
目录结构
/home/jingrow/
├── jsite/ # 网站项目目录
│ ├── myproject1/ # 项目1
│ ├── myproject2/ # 项目2
│ └── site_port.json # 端口分配记录
├── traefik-docker/ # Traefik配置目录
│ └── conf.d/website/ # 网站配置文件
└── .nvm/ # Node.js版本管理
注意事项
- 权限要求:脚本需要root权限运行
- 端口管理:自动分配端口,避免冲突
- 环境依赖:确保系统支持Docker和Node.js
- 域名配置:需要正确配置DNS解析
- SSL证书:Traefik自动申请Let's Encrypt证书
故障排除
常见问题
-
端口被占用
- 检查端口分配文件:
/home/jingrow/jsite/site_port.json - 手动修改端口或停止占用进程
- 检查端口分配文件:
-
PM2启动失败
- 检查项目依赖是否正确安装
- 查看PM2日志:
pm2 logs <项目名> - 确认package.json中有start脚本
-
Traefik配置问题
- 检查配置文件:
/home/jingrow/traefik-docker/conf.d/website/ - 重启Traefik服务
- 检查配置文件:
-
域名访问问题
- 确认DNS解析正确
- 检查防火墙设置
- 验证SSL证书状态
日志查看
# PM2日志
pm2 logs <项目名>
# Traefik日志
docker logs <traefik容器名>
# 系统日志
journalctl -u docker
更新日志
- v2.0: 整合jsite.sh功能,支持多种任务模式
- v1.0: 基础部署功能
许可证
MIT License