搭建基于Gitee文档笔记自动发布

由于现在gitee不支持代理静态页面,并且github.io需要VPN,实际使用的话gitee更为方便。

一、为服务器和个人PC添加免密push和pull

参考链接:https://help.gitee.com/base/account/SSH%E5%85%AC%E9%92%A5%E8%AE%BE%E7%BD%AE

二、创建webhooks

创建webhooks目的是用于监听gitee仓库的push事件,自动触发服务器端pull更新代码和文档笔记。
在这里插入图片描述

三、创建服务监听

1、创建监听脚本文件
vim gitee-hook.sh
#!/bin/bash#Git 仓库所在目录,即执行 git pull 的工作目录
WORK_DIR="/root/helloops/"
#日志文件路径,记录脚本执行过程和结果
LOG_FILE="/root/gitee-hooks/hook.log"#将带时间戳的日志信息追加到 LOG_FILE
#示例输出:[20250630-143000] Starting git pull...
log() {echo "[$(date '+%Y%m%d-%H:%M:%S')] $1" >> $LOG_FILE
}#切换到工作目录并执行 git pull,将执行过程逐行记录到日志
execute_git_pull() {log "start git pull..."cd $WORK_DIR || { log "not cd workdir"; exit 1; }/usr/bin/git pull 2>&1 | while read line; dolog "git pull: $line"donelog "git pull started..."
}#解析 Gitee Webhook 发送的 HTTP 请求,验证 Token 并执行更新
parse_request(){while read -r line; do#根据自己设置的密码进行更换if [[ $line == "X-Gitee-Token: 123456" ]]; then VALID_TOKEN=truefiif [ -z "$line" ]; thenbreakfidonebody=$(cat)log "input gitee hook requests,Body size: ${#body}"execute_git_pull
}parse_request
2、创建监听服务文件
sudo cat > /lib/systemd/system/gitee-hook.service << 'EOF'
[Unit]
Description=Gitee Webhook Listener
After=network.target[Service]
Type=simple
ExecStart=/usr/bin/socat TCP-LISTEN:8080,fork EXEC:"/root/gitee-hook.sh"
WorkingDirectory=/root/gitee-hooks
User=root
Group=root
Restart=on-failure
RestartSec=5s
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=gitee-hook[Install]
WantedBy=multi-user.target
EOF#创建日志存储目录并授权脚本
sudo mkdir -p /root/gitee-hooks
sudo chmod +x /root/gitee-hook.sh#检查 socat 是否安装
which socat || sudo apt-get install socat -y  # Debian/Ubuntu
which socat || sudo yum install socat -y       # CentOS/RHEL#重载 systemd 配置并启动
sudo systemctl daemon-reload
sudo systemctl start gitee-hook#设置开机启动并查看状态
sudo systemctl enable gitee-hook
sudo systemctl status gitee-hook

四、测试操作

1、安装pandoc
apt -y install pandoc
2、整个流程操作
pandoc sources/md/KL-Ubuntu/搭建基于Gitee文档笔记自动发布.md -s -o html/KL-Ubuntu/搭建基于Gitee文档笔记 自动发布.htmlgit add . git status git commit -m "add **"git push

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

五、Nginx配置参考以及目录结构参考

server {charset utf-8;server_name abc.cn www.abc.cn;client_max_body_size 1024m;gzip on;location / {alias /root/helloops/html/; autoindex on;}location /yaml {alias /root/helloops/yaml/;autoindex on;}location /windos {alias /root/helloops/sources/windos/;autoindex on;auth_basic "Restricted Access";auth_basic_user_file /etc/nginx/.htpasswd;add_header Cache-Control "no-cache, no-store, must-revalidate";add_header Pragma "no-cache";add_header Expires 0;}location /sources/images {alias /root/helloops/sources/images/;autoindex on;}listen 443 ssl; # managed by Certbotssl_certificate /etc/letsencrypt/live/helloops.cn/fullchain.pem; # managed by Certbotssl_certificate_key /etc/letsencrypt/live/helloops.cn/privkey.pem; # managed by Certbotinclude /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbotssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
} 
server {if ($host = www.helloops.cn) {return 301 https://$host$request_uri;} # managed by Certbotif ($host = helloops.cn) {return 301 https://$host$request_uri;} # managed by Certbotlisten 80;server_name abc.cn www.abc.cn;}

目录结构

root@helloops# tree -d
.
├── html
│   ├── k8s
│   └── KL-Ubuntu
├── sources
│   ├── images
│   ├── md
│   │   ├── k8s
│   │   └── KL-Ubuntu
│   └── windos
└── yaml10 directories

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915078.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915078.shtml
英文地址,请注明出处:http://en.pswp.cn/news/915078.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Lua】闭包可能会导致的变量问题

先思考下面这个问题&#xff1a;local function counter()local count 0return function()count count 1return countend endlocal a counter() local b counter()print(a()) --> ? print(a()) --> ? print(b()) --> ? print(a()) --> ?输出结果&#xff…

可观测性、OpenTracing、OpenCensus、OpenTelemetry、Jaeger

监控与观测 随着软件应用从单片架构向分布式微服务体系转变&#xff0c;应用监控(Monitoring)和观测(Observability)的需求也随之提升。两者存在相同的定义&#xff0c;目的都是为了发现应用程序中的问题。但还是有差别&#xff1a; 监控&#xff1a;目的是为了捕获已知的问题…

Linux下使用原始socket收发数据包

在Linux系统中&#xff0c;使用非原始的socket&#xff0c;可以收发TCP或者UDP等网络层数据包。如果要处理网络层以下的数据包&#xff0c;比如ICMP、ARP等&#xff0c;或者更底层&#xff0c;比如链路层数据包&#xff0c;就得使用原始socket了。 创建socket 创建socket要使用…

暑期自学嵌入式——Day05补充(C语言阶段)

接续上文&#xff1a;暑期自学嵌入式——Day05&#xff08;C语言阶段&#xff09;-CSDN博客 主页点关注不迷路哟。你的点赞、收藏&#xff0c;一键三连&#xff0c;是我持续更新的动力哟&#xff01;&#xff01;&#xff01; 主页&#xff1a; 一位搞嵌入式的 genius-CSDN博…

.NET Core EFCore零基础快速入门简单使用

一、什么是 Entity Framework (EF) Core Entity Framework (EF) Core 是轻量化、可扩展和跨平台版的对象关系映射程序 (O/RM)数据访问技术&#xff0c;。 它将开发人员从编写大量 SQL 语句中解放出来。 二、EF的相关程序包 Microsoft.EntityFrameworkCore 核心程序包&#x…

AAC音频格式

目录 AAC音频格式介绍 主要特点 技术优势 常见文件扩展名 应用领域 AAC与PCM的区别与优势对比 基本概念差异 主要技术区别 各自优势 PCM的优势 AAC的优势 应用场景选择 AAC音频数据格式解析 1. AAC 文件格式 (1) ADIF (Audio Data Interchange Format) (2) ADT…

pom.xml文件中的${}变量从哪里传值

在 Maven 的 pom.xml 文件中&#xff0c;${} 格式的变量&#xff08;称为属性占位符&#xff09;的值来源主要有以下几种途径&#xff1a; 1. ​内置属性&#xff08;Maven 预定义&#xff09;​​ ${project.basedir}&#xff1a;项目根目录${project.version}&#xff1a;项…

【人工智能】项目案例分析:使用TensorFlow进行大规模对象检测

🏆🏆欢迎大家来到我们的天空🏆🏆 🏆 作者简介:我们的天空 🏆《头衔》:大厂高级软件测试工程师,阿里云开发者社区专家博主,CSDN人工智能领域新星创作者。 🏆《博客》:人工智能,深度学习,机器学习,python,自然语言处理,AIGC等分享。 所属的专栏:TensorF…

C++---cout、cerr、clog

在C编程里&#xff0c;cout、cerr和clog是标准库提供的重要输出流对象&#xff0c;在数据输出方面发挥着关键作用。 一、cout&#xff1a;标准输出流 cout 是 std::ostream 类的对象&#xff0c;其作用是向标准输出设备&#xff08;一般是控制台&#xff09;输出数据。它和 C 语…

脉冲神经网络(Spiking Neural Network, SNN)与知识蒸馏(Knowledge Distillation, KD)

目录 脉冲神经网络&#xff08;Spiking Neural Network, SNN&#xff09; 知识蒸馏&#xff08;Knowledge Distillation, KD&#xff09; 三种类别 三种变体 脉冲神经网络&#xff08;Spiking Neural Network, SNN&#xff09; 收到生物神经系统的启发&#xff0c;设计的&a…

使用Java完成下面项目

第一题&#xff1a;从控制台输入十个学生的成绩&#xff0c;使用list集合来保存数据&#xff0c; 遍历并打印其中成绩不及格的成绩&#xff0c;打印最高成绩&#xff0c;最低成绩&#xff0c;并计算及格率代码如下public class Home1 {public static void main(String[] args) …

龙虎榜——20250718

上证指数今天上涨收阳线&#xff0c;继续在5天均线保持强势上涨&#xff0c;个股下跌稍多&#xff0c;大盘股上涨为主。深证指数收小阳线&#xff0c;继续在5天均线上&#xff0c;总体保持强势&#xff0c;调整更多是小票。2025年7月18日龙虎榜行业方向分析1. 医药医疗• 代表标…

2025年华为认证之HCIE-云计算方向的报考流程

一、先搞明白&#xff1a;HCIE - 云计算认证到底是啥&#xff1f; HCIE - 云计算&#xff08;华为认证 ICT 专家 - 云计算&#xff09;是华为体系里云计算领域的顶级认证&#xff0c;说白了&#xff0c;就是证明你有能力搞定大型企业的云平台设计、部署和运维。现在政企、金融…

什么是私有化部署企业即时通讯?吱吱企业即时通讯安全吗?

在企业数字化转型加速的今天&#xff0c;沟通工具的选择已经从满足简单沟通&#xff0c;升级为“安全、高效、可控”。其中&#xff0c;“私有化部署企业即时通讯”成为许多中小型企业、跨国企业以及数据敏感型企业的核心需求。 那么&#xff0c;究竟什么是私有化部署&#xff…

Vue3 中使用 Element Plus 实现自定义按钮的 ElNotification 提示框

在 Vue3 项目中&#xff0c;我们经常会用到 ElNotification 作为消息提醒组件&#xff0c;尤其是在异步操作、任务完成或用户需要交互确认时。然而&#xff0c;Element Plus 默认的 Notification 是非交互式的&#xff0c;不能直接嵌入按钮或事件。 今天我们来实现一个带自定义…

下载webrtc M114版本源码只能使用外网googlesource源-命令版

声网、国内源都不行&#xff0c;只能外网googlesource源&#xff01;&#xff01;&#xff01; 二、创建 Ubuntu 容器&#xff08;带目录挂载&#xff09; 拉取Ubuntu镜像 docker pull ubuntu:22.04创建并启动容器&#xff08;挂载Windows目录到容器&#xff09; docker run -i…

Linux运维新手的修炼手扎之第21天

Nginx服务和Tomcat服务1 负载均衡语法格式&#xff1a;upstream[一个或多个]rootubuntu24-13:~# vim /etc/nginx/conf.d/vhost.confupstream group1 {server 10.0.0.16;}upstream group2 {server 10.0.0.14;}server {listen 80;server_name sswang1.magedu.com;location / {pro…

TrOCR: 基于Transformer的光学字符识别方法,使用预训练模型

温馨提示&#xff1a; 本篇文章已同步至"AI专题精讲" TrOCR: 基于Transformer的光学字符识别方法&#xff0c;使用预训练模型 摘要 文本识别是文档数字化中的一个长期研究问题。现有方法通常基于CNN进行图像理解&#xff0c;基于RNN进行字符级文本生成。此外&#…

西门子工业软件全球高级副总裁兼大中华区董事总经理梁乃明先生一行到访庭田科技

概要2025年6月&#xff0c;西门子工业软件全球高级副总裁兼大中华区董事总经理梁乃明先生一行到访我司。庭田科技总经理聂春文携销售团队对西门子代表团表示热烈欢迎&#xff0c;并就当前业务发展方向及未来行业聚焦领域与代表团展开深入交流。 聂春文总经理及销售团队陪同西门…

在 Jenkins 中使用 SSH 部署密钥

本文档介绍了如何在 Jenkins 中配置 SSH 部署密钥&#xff0c;以便更稳定地拉取 Git 仓库代码&#xff0c;避免常见的 RPC 错误。 1. 背景 在使用 Jenkins 进行持续集成时&#xff0c;常常需要从 Git 仓库拉取代码。如果使用 HTTP/HTTPS 协议&#xff0c;有时会遇到 RPC 错误&…