搭建基于Gitee文檔筆記自動發布

搭建基于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 錯誤&…