论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
前端开发
›
通过宝塔利用webhook同步GitHub中项目实现建站 ...
通过宝塔利用webhook同步GitHub中项目实现建站
没腿的鸟
论坛元老
|
2025-2-22 20:47:37
|
显示全部楼层
|
阅读模式
楼主
主题
1976
|
帖子
1976
|
积分
5928
前置条件
已经安装宝塔面板的服务器:此步骤网上或者B站有很多
安装webhook:在宝塔面板中的软件市肆查找安装即可。
已有Github账号:默认有的。
已有
网站静态文件
:项目编译后的静态文件已上传到Github堆栈中。
域名:若服务器在国内,则须要存案,否则不须要。
步骤
1. 安装git以便拉取项目代码
笔者体系利用的是Debian,若是别的体系则可问
chatgpt
。
进入宝塔面板,点击终端输入代码。
更新软件包列表:
sudo apt update
复制代码
安装git:
sudo apt install git
复制代码
体系会提示安装所需的依赖项,输入 Y 确认安装。
验证安装:
git --version
# 安装成功显示:git version 2.x.x
复制代码
2. 设置ssh实现免登录
进入Github官网,点击右上角本身的头像:
在弹出列表中点击Settings进入设置页
在左侧列表中点击SSH and GPG keys
在中部选项卡中点击New SSH key按钮
回到终端天生SSH密钥:
ssh-keygen -t rsa
复制代码
出现以下停顿回车即可:
Enter file in which to save the key (/root/.ssh/id_rsa):ssh文件生存目次,默认即是
圆括号
中的地点。
Enter passphrase (empty for no passphrase):文件暗码,默认空缺即可,个人利用无所谓。
Enter same passphrase again:确认暗码,默认空缺。
获取公钥内容:
cat /root/.ssh/id_rsa.pub
# 通常为:ssh-rsa AAAAB3... rest_of_key ...== root@your-hostname
复制代码
复制公钥内容并输入:
Title - 展示名称,可以为XX服务器的SSH等等。
key type - 键类型,默认即可。
Key - 公钥内容粘贴进去。
最后点击
Add SSH Key
回到终端测试连接:
ssh -T git@github.com
复制代码
出现一下内容:
由本人确认是否信托主机:GitHub 的官方 ED25519 指纹为(SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU)
可以在 GitHub 官方文档 SSH key fingerprints 中查到这一指纹。
如果指纹匹配并且你确信是连接到 GitHub,可以输入
yes
,然后按
Enter
。
#The authenticity of host 'github.com (20.205.243.166)' can't be established.
#ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
#This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
#Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
#Hi 你的名字! You've successfully authenticated, but GitHub does not provide shell access.
复制代码
3. 拉取项目文件,并创建网站
进入宝塔面板
点击左侧菜单中的
文件
项。
点击
地点栏
切换地点为:www/wwwroot/。
点击
终端
按钮。
输入进行
项目拉取
:
#此次为你的项目SSH连接
git clone git@github.com:yourname/project_xxx.git
复制代码
拉取完成后创建网站
点击左侧菜单中的
网站
项
点击
HTML项目
选项卡。
点击
添加HTML项目
按钮。
输入内容
域名 - 你的域名例如:www.myblog.com以及myblog.com。
备注 - 展示用例如:
XX博客网站
。
根目次 - 项目目次:www/wwwroot/myproject。
完成后点击
确定
。
留意
:
现在如果你的域名
已经解析
到了服务器ip,并且
服务器实例
中的
安全组
以及
宝塔面板中的安全选项
中开启了
80端口
和
443端口
,那么得
稍等片刻
后才能打开得了网站。
趁便一提,
443端口
是添加了
SSL证书
后利用到的,以及
不发起
直接将
域名解析
到个人服务器
ip地点
,随便找个
CDN加快网站
隐藏。
4. 设置webhook实当代码同步
添加Hook:
在宝塔面板中点击
软件市肆
。
点击以安装找到WebHook并点击。
在弹出窗口点击
添加Hook
。
添加Hook:
名称 - 展示的名称,可为XX博客同步
执行脚本 - 填入以下内容
#输出更新时间
echo "网站更新时间为:"
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
#project_name为网站项目,目录基本都是这样
cd /www/wwwroot/project_name
#执行的git拉取命令,本质上是镜像仓库,所以不用保存本地修改
#获取远程最新状态
git fetch --all
# 强制将本地分支重置为远程分支的状态
git reset --hard origin/<你的分支名>
# 删除本地所有未被 Git 跟踪的文件和目录
git clean -fd
复制代码
添加完成后
点击查看密钥
,复制
GET/POST
后的URl。
测试Webhook是否能自动拉取:
进入项目文件夹删除某些文件
点击
测试
按钮
查看文件是否被拉取下来
如果文件规复了则乐成完成
到
网站项目堆栈
中:
点击Settings选项。
点击Webhook选项。
点击Add webhook按钮。
将URL填入。
将Content type设置为application/json
将SSL verification设置为Disable (not recommended)
点击Add webhook
测试项目更新是否能同步更新网站:
更新项目……
打开网站检查……
5. 扩展
如果你认识构建网站并部署,例如利用node.js命令。那么实现以下功能也不是不行:
将Vue项目部署到服务器上实现动态部署网站。
每次更新后生存记录。
……
反正这个基本原理流程如下:
远程堆栈
更新
,向服务器提供的接口
发送更新消息
服务器
接收到更新消息
,则
执行
对应
代码脚本。
至于GitHub中的SSL verification选项题目:
如果想开启的话,须要给宝塔
设置域名
并且
设置SSL证书
,我看了下宝塔webhook利用的是
服务器ip+端口号
,是应该给面板设置域名启看你本身吧。
如果不想给面板设置域名则:
新建域名解析→CDN→服务器→反向代理(https://127.0.0.1:宝塔端口)
,并给
反向代理
和
CDN
设置
SSL证书
。然后用域名更换webhook的
url
中
服务器ip+端口号
即可。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
没腿的鸟
论坛元老
这个人很懒什么都没写!
楼主热帖
CVE-2022-23131 Zabbix SAML SSO认证绕 ...
iOS全埋点解决方案-采集崩溃 ...
【ollama】Linux下更改ollama模型下载 ...
同一个网络下两台设备看直播时,进度不 ...
【密码管理器】上海道宁为您提供存储和 ...
java代码审计-XSS
iOS 苹果集成登录及苹果图标的制作要求 ...
北斗授时产品(GPS北斗授时设备)加NTP ...
Redis事务
Doris(七) -- 修改表、动态和临时分区 ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
Java
linux
快速回复
返回顶部
返回列表