<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Blog on Anthony</title><link>https://gogo.anthony42.eu.org/categories/blog/</link><description>Recent content in Blog on Anthony</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 22 Apr 2026 18:22:57 +0800</lastBuildDate><atom:link href="https://gogo.anthony42.eu.org/categories/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Hugo Nginx</title><link>https://gogo.anthony42.eu.org/posts/hugo-nginx/</link><pubDate>Wed, 22 Apr 2026 18:22:57 +0800</pubDate><guid>https://gogo.anthony42.eu.org/posts/hugo-nginx/</guid><description>&lt;h2 id="nginx-cfg"&gt;nginx cfg&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; location /webhook/ {
allow 140.82.112.0/20;
allow 192.30.252.0/22;
allow 185.199.108.0/22;
allow 127.0.0.1;
deny all;
proxy_pass http://127.0.0.1:9000/hooks/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 120s;
proxy_buffering off;
}
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot|webp)$ {
expires 30d;
add_header Cache-Control &amp;#34;public, immutable&amp;#34;;
log_not_found off;
access_log off;
}
location ~* \.(html|htm|xml|txt|json)$ {
expires 1h;
add_header Cache-Control &amp;#34;public&amp;#34;;
}
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
location ~* \.(sql|bak|backup|sh|log|ini|conf|yml|yaml|md)$ {
deny all;
return 404;
}
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="etcsystemdsystemwebhookservice"&gt;/etc/systemd/system/webhook.service&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[Unit]
Description=Webhook Service
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/bin/webhook -ip 127.0.0.1 -port 9000 -hooks /etc/webhook/hooks.json -verbose
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="deploy"&gt;deploy&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#!/bin/bash
SOURCE_DIR=&amp;#34;/home/anthony/blog-source&amp;#34;
WEB_DIR=&amp;#34;/var/www/blog&amp;#34;
LOG_FILE=&amp;#34;/var/log/webhook/deploy.log&amp;#34;
echo &amp;#34;$(date): ========== start deploy ==========&amp;#34; &amp;gt;&amp;gt; $LOG_FILE
cd $SOURCE_DIR || {
echo &amp;#34;$(date): ERROR: cannot enter $SOURCE_DIR&amp;#34; &amp;gt;&amp;gt; $LOG_FILE
exit 1
}
echo &amp;#34;$(date): fetching remote updates&amp;#34; &amp;gt;&amp;gt; $LOG_FILE
git fetch origin &amp;gt;&amp;gt; $LOG_FILE 2&amp;gt;&amp;amp;1
echo &amp;#34;$(date): force sync with remote main branch&amp;#34; &amp;gt;&amp;gt; $LOG_FILE
git reset --hard origin/main &amp;gt;&amp;gt; $LOG_FILE 2&amp;gt;&amp;amp;1
echo &amp;#34;$(date): updating submodules&amp;#34; &amp;gt;&amp;gt; $LOG_FILE
git submodule update --init --recursive &amp;gt;&amp;gt; $LOG_FILE 2&amp;gt;&amp;amp;1
echo &amp;#34;$(date): generating static files&amp;#34; &amp;gt;&amp;gt; $LOG_FILE
hugo --destination $WEB_DIR --minify -D &amp;gt;&amp;gt; $LOG_FILE 2&amp;gt;&amp;amp;1
echo &amp;#34;$(date): setting permissions&amp;#34; &amp;gt;&amp;gt; $LOG_FILE
chmod -R 755 $WEB_DIR &amp;gt;&amp;gt; $LOG_FILE 2&amp;gt;&amp;amp;1
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>webhook</title><link>https://gogo.anthony42.eu.org/posts/webhook/</link><pubDate>Tue, 21 Apr 2026 16:34:56 +0800</pubDate><guid>https://gogo.anthony42.eu.org/posts/webhook/</guid><description>&lt;h1 id="webhook-status"&gt;webhook status&lt;/h1&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo systemctl daemon-reload
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo systemctl restart webhook
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo systemctl status webhook
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo netstat -tlnp | grep webhook
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id="webhookservice"&gt;webhook.service&lt;/h1&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /etc/systemd/system/webhook.service
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id="deploysh"&gt;deploy.sh&lt;/h1&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;vi /usr/local/bin/deploy.sh
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id="log"&gt;log&lt;/h1&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;tail -f /var/log/webhook/deploy.log
&lt;/code&gt;&lt;/pre&gt;</description></item></channel></rss>