v0.app的next.js项目自动部署到宝塔服务器教程

v0.app的next.js项目自动部署到宝塔服务器教程

首先自备梯子登录github。

然后v0.app项目右上角点击github头像那边进行连接到自己github后,点击 push changes,推送该项目到自己的github。

然后到自己的服务器安装下 webhook。


1. 添加 git 用户

为了方便安全部署项目:

bash 复制代码
adduser git

2. 下载和安装 webhook(用 root 用户)

bash 复制代码
curl -LO https://github.com/adnanh/webhook/releases/download/2.8.2/webhook-linux-amd64.tar.gz
tar xvf webhook-linux-amd64.tar.gz
mv webhook-linux-amd64/webhook /usr/local/bin/

验证是否安装成功:

bash 复制代码
webhook --version
#会输出:webhook version 2.8.2

3. 切换到 git 用户

bash 复制代码
su git

先安装环境(npm 可以用 nvm 来安装,比较方便切换版本,请自行搜索如何安装):

bash 复制代码
npm install -g pm2

4. 设置 webhook 环境

创建webhook配置文件

bash 复制代码
cd
mkdir hooks
cat > hooks/test.json <<EOF
[
  {
    "id": "test-auto-deploy",
    "execute-command": "/home/git/deploy_scripts/deploy_test.sh",
    "command-working-directory": "/home/git",
    "trigger-rule": {
      "and": [
        {
          "match": {
            "type": "payload-hash-sha1",
            "secret": "设置自己的密码",
            "parameter": {
              "source": "header",
              "name": "X-Hub-Signature"
            }
          }
        },
        {
          "match": {
            "type": "value",
            "value": "refs/heads/main",
            "parameter": {
              "source": "payload",
              "name": "ref"
            }
          }
        }
      ]
    }
  }
]
EOF

5. 创建部署脚本

从github获取到更新后,会自动运行的脚本

bash 复制代码
mkdir deploy_scripts

cat > deploy_scripts/deploy_test.sh <<EOF
#!/bin/bash

echo \`date +"%Y-%m-%d %H:%M:%S"\`': deploy begin' >> /home/git/deploy_scripts/deploy.log
# 下面改为自己的站点目录,确保这个目录要运行:chown -R git:git /www/wwwroot/www.test.com
cd /www/wwwroot/www.test.com
git pull
npm install
npm run build
pm2 stop test
pm2 start npm --name "test" -- run start

echo \`date +"%Y-%m-%d %H:%M:%S"\`': deploy done' >> /home/git/deploy_scripts/deploy.log
EOF

6. 安装 tmux 并启动 webhook 服务

退出 git 用户,重新返回 root 用户,安装 tmux,以方便后台运行和查看 webhook 服务:

bash 复制代码
yum -y install tmux

创建 webhook 用的 tmux 窗口:

bash 复制代码
tmux new -s webhook-test
su git
cd

启动 webhook 环境:

bash 复制代码
webhook -hooks hooks/test.json -port 9000 -verbose

7. 宝塔配置反向代理

这是为了方便github那边用域名来访问webhook服务。

  1. 去宝塔创建网站,如 www.test.com

  2. 打开该站点,点击 SSL,申请证书服务。

  3. 点击 反向代理 => 添加反向代理

    • 代理名称随便
    • 目标 URL 填:http://127.0.0.1:9000
    • 点击确定

现在 https://www.test.com 就会自动代理到 webhook 服务了。


8. GitHub 设置 Webhook

进入 GitHub 项目,点击 Settings → Webhooks → Add webhook:(请根据上面自己的webhook配置内容来填写)

  • Payload URLhttps://www.test.com/hooks/test-auto-deploy
  • Content type :选 application/json
  • Secret :填上面 hooks/test.json 自己设置的密码
  • SSL verification :选 Enable SSL
  • 其他默认即可,然后点击 Add webhook

9. 测试自动部署

现在在 v0.app 项目那边,随便修改下,然后点击右上角 GitHub 头像,点击 push changes

等待约 30 秒,就可以自动部署成功了。

相关推荐
这是个栗子6 分钟前
TypeScript(三)
前端·javascript·typescript·react
码云数智-大飞26 分钟前
C++ RAII机制:资源管理的“自动化”哲学
java·服务器·php
白毛大侠1 小时前
理解 Go 接口:eface 与 iface 的区别及动态性解析
开发语言·网络·golang
SkyXZ~1 小时前
Jetson有Jtop,Linux有Htop,RDK也有Dtop!
linux·运维·服务器·rdkx5·rdks100·dtop
李昊哲小课1 小时前
Python办公自动化教程 - 第7章 综合实战案例 - 企业销售管理系统
开发语言·python·数据分析·excel·数据可视化·openpyxl
Hou'1 小时前
从0到1的C语言传奇之路
c语言·开发语言
飞哥数智坊1 小时前
【大纲】TRAE AI 编程入门第四讲——打破编程界限的智能体
人工智能·ai编程·trae
码农BookSea1 小时前
深度解析Skills:从Prompt到能力复用的技术革命
后端·ai编程
飞哥数智坊1 小时前
【大纲】TRAE AI 编程入门第三讲——突破边界的 Rules、Memory、MCP、Skills
人工智能·ai编程·trae
不知名的老吴1 小时前
返回None还是空集合?防御式编程的关键细节
开发语言·python