2025-08-10 16:49:02 +08:00
2025-08-10 16:49:02 +08:00

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)

  1. 创建jingrow用户
  2. 安装Docker可选跳过
  3. 安装Node.js和NVM
  4. 克隆项目代码
  5. 创建环境配置文件
  6. 安装项目依赖
  7. 安装PM2并启动项目
  8. 安装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版本管理

注意事项

  1. 权限要求脚本需要root权限运行
  2. 端口管理:自动分配端口,避免冲突
  3. 环境依赖确保系统支持Docker和Node.js
  4. 域名配置需要正确配置DNS解析
  5. SSL证书Traefik自动申请Let's Encrypt证书

故障排除

常见问题

  1. 端口被占用

    • 检查端口分配文件:/home/jingrow/jsite/site_port.json
    • 手动修改端口或停止占用进程
  2. PM2启动失败

    • 检查项目依赖是否正确安装
    • 查看PM2日志pm2 logs <项目名>
    • 确认package.json中有start脚本
  3. Traefik配置问题

    • 检查配置文件:/home/jingrow/traefik-docker/conf.d/website/
    • 重启Traefik服务
  4. 域名访问问题

    • 确认DNS解析正确
    • 检查防火墙设置
    • 验证SSL证书状态

日志查看

# PM2日志
pm2 logs <项目名>

# Traefik日志
docker logs <traefik容器名>

# 系统日志
journalctl -u docker

更新日志

  • v2.0: 整合jsite.sh功能支持多种任务模式
  • v1.0: 基础部署功能

许可证

MIT License

Description
No description provided
Readme 983 KiB
Languages
Shell 100%