<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Automation on Umi4Life's Blog</title><link>https://umi4.life/th/categories/automation/</link><description>Recent content from Umi4Life's Blog</description><generator>Hugo</generator><language>th-th</language><managingEditor>zekamashi@umi4.life (Umi4Life / Zekamashi)</managingEditor><webMaster>zekamashi@umi4.life (Umi4Life / Zekamashi)</webMaster><copyright>บทความทั้งหมดในบล็อกนี้อยู่ภายใต้สัญญาอนุญาต BY-NC-SA เว้นแต่จะระบุไว้เป็นอย่างอื่น กรุณาระบุแหล่งที่มาเมื่อนำไปเผยแพร่ซ้ำ!</copyright><lastBuildDate>Mon, 08 Jun 2026 03:00:00 +0700</lastBuildDate><atom:link href="https://umi4.life/th/categories/automation/index.xml" rel="self" type="application/rss+xml"/><item><title>สาม Repo หนึ่ง Heatmap: Git Activity ที่ปลอดภัยบน umi4.life</title><link>https://umi4.life/th/posts/git-activity-heatmap-pipeline/</link><pubDate>Mon, 08 Jun 2026 03:00:00 +0700</pubDate><author>zekamashi@umi4.life (Umi4Life / Zekamashi)</author><guid>https://umi4.life/th/posts/git-activity-heatmap-pipeline/</guid><description>
<![CDATA[<h1>สาม Repo หนึ่ง Heatmap: Git Activity ที่ปลอดภัยบน umi4.life</h1><p>ผู้เขียน: Umi4Life / Zekamashi(zekamashi@umi4.life)</p>
        
          <p><img src="/posts/git-activity-heatmap-pipeline/images/vendor-ci-success-redacted.png" alt="Vendor CI workflow สำเร็จหลังเพิ่ม cross-repo token แล้ว รายละเอียดที่ละเอียดอ่อนถูก redact"></p>
<blockquote>
<p><strong>หมายเหตุผู้ปฏิบัติการ:</strong> ภาพในบทความนี้ถูก redact แล้ว token, ส่วนหัวบัญชี และ metadata ของ workflow ถูกเบลอ ตัวอย่าง config ใช้ placeholder เท่านั้น</p>
</blockquote>
<div class="post-icon-row"><img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/hugo.svg" alt="Hugo">
<img src="https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@latest/icons/github.svg" alt="Github">
<img src="https://cdn.jsdelivr.net/gh/selfhst/icons/svg/gitea.svg" alt="Gitea">
<img src="https://cdn.jsdelivr.net/gh/selfhst/icons/svg/debian.svg" alt="Deb">
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/linux.svg" alt="Linux">
<img src="https://cdn.jsdelivr.net/gh/selfhst/icons/svg/git.svg" alt="Git"></div>

<p>ผมอยากได้กราฟ contribution แบบ GitHub บนหน้า <a href="/th/about/">About</a> — แต่ก็มี Gitea ส่วนตัวสำหรับงาน homelab และ infrastructure การเผยแพร่<em>จำนวน</em>กิจกรรมมีประโยชน์ การเผยแพร่ว่าแตะ private repo ไหน พร้อม commit message และชื่อ branch ไม่ใช่</p>
<p>เลยแบ่งปัญหาเป็นสาม repository ด้วยขอบเขตที่ชัดเจน:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">private exporter  →  public artifact  →  public blog display
</span></span></code></pre></div><p>บล็อกไม่เรียก GitHub หรือ Gitea API เลย แค่ render JSON ที่ commit ไว้ homelab ไม่ต้องมี token สำหรับ <code>umi4.life</code> credential ข้าม repo มีแค่ใน GitHub Actions ของ artifact repo</p>
        
        <hr><p>เผยแพร่เมื่อ 2026-06-08 ที่ <a href='https://umi4.life/'>Umi4Life's Blog</a> แก้ไขล่าสุดเมื่อ 2026-06-08</p>]]></description><category>homelab</category><category>infrastructure</category><category>automation</category></item><item><title>ลดการเรียก GPT Vision ด้วย Gemma Router แบบ Fail-Closed</title><link>https://umi4.life/th/posts/gemma-vision-router/</link><pubDate>Fri, 05 Jun 2026 17:28:00 +0700</pubDate><author>zekamashi@umi4.life (Umi4Life / Zekamashi)</author><guid>https://umi4.life/th/posts/gemma-vision-router/</guid><description>
<![CDATA[<h1>ลดการเรียก GPT Vision ด้วย Gemma Router แบบ Fail-Closed</h1><p>ผู้เขียน: Umi4Life / Zekamashi(zekamashi@umi4.life)</p>
        
          <blockquote>
<p>local multimodal model จะช่วยลดการใช้ GPT/Codex vision ได้ไหม โดยไม่ทำให้ assistant ไม่น่าเชื่อถือ?</p>
</blockquote>
<h2 id="สรป">
<a class="header-anchor" href="#%e0%b8%aa%e0%b8%a3%e0%b8%9b"></a>
สรุป
</h2><p>ผมทดลองว่า local Gemma multimodal model ที่ serve ผ่าน LiteLLM จะทำหน้าที่เป็น image interpretation helper รอบแรกให้ Hermes/Sky Feather ได้แค่ไหน</p>
<p>เป้าหมายไม่ใช่การแทนที่ GPT-5.5/Codex vision ทั้งหมด แต่เป็นคำถามที่ใช้งานจริงมากกว่า:</p>
<blockquote>
<p>ให้ Gemma จัดการคำอธิบายรูปภาพทั่วไปได้ไหม แล้วค่อย escalate รูปที่ไม่มั่นใจ มี text เยอะ หรือมีความเสี่ยงกลับไปหา GPT?</p>
</blockquote>
<p>คำตอบคือ: <strong>ได้ แต่ต้องมี router ที่ conservative และ fail closed เท่านั้น</strong></p>
<p>ใน benchmark 20 รูปแบบ clean run:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">GPT-only baseline:     20 GPT/Codex vision calls
</span></span><span class="line"><span class="cl">Gemma-first router:   20 Gemma calls + 12 GPT/Codex escalations
</span></span><span class="line"><span class="cl">GPT calls avoided:     8 / 20 = 40%
</span></span><span class="line"><span class="cl">Gemma empty outputs:   5 / 20 = 25%
</span></span></code></pre></div><p>Gemma มีประโยชน์สำหรับ visual triage ที่ความเสี่ยงต่ำ แต่ก็มีหลายเคสที่ output ที่มองเห็นได้ว่างเปล่า นั่นทำให้มันไม่ปลอดภัยพอจะเป็น vision backend เดี่ยว ๆ</p>
        
        <hr><p>เผยแพร่เมื่อ 2026-06-05 ที่ <a href='https://umi4.life/'>Umi4Life's Blog</a> แก้ไขล่าสุดเมื่อ 2026-06-05</p>]]></description><category>automation</category><category>ai</category><category>homelab</category></item><item><title>Untangling Homelab หลังตั้ง Hermes Dashboard แล้วพังเป็นลูกโซ่</title><link>https://umi4.life/th/posts/hermes-litellm-authelia-control-plane/</link><pubDate>Wed, 03 Jun 2026 18:30:00 +0700</pubDate><author>zekamashi@umi4.life (Umi4Life / Zekamashi)</author><guid>https://umi4.life/th/posts/hermes-litellm-authelia-control-plane/</guid><description>
<![CDATA[<h1>Untangling Homelab หลังตั้ง Hermes Dashboard แล้วพังเป็นลูกโซ่</h1><p>ผู้เขียน: Umi4Life / Zekamashi(zekamashi@umi4.life)</p>
        
          <p><strong>คำบรรยาย:</strong> เราแค่อยากเปิด Hermes Dashboard ให้เข้าจาก LAN ได้ แต่ดันไปสะกิด tech debt เก่าใน routing/auth stack จนต้องไล่แก้ปมทั้ง Traefik, Authelia OIDC, split DNS และ LiteLLM</p>
<div class="post-icon-row"><img src="/posts/hermes-litellm-authelia-control-plane/images/icons/traefik-proxy.svg" alt="Traefik Proxy">
<img src="/posts/hermes-litellm-authelia-control-plane/images/icons/cloudflare.svg" alt="Cloudflare">
<img src="/posts/hermes-litellm-authelia-control-plane/images/icons/docker.svg" alt="Docker">
<img src="/posts/hermes-litellm-authelia-control-plane/images/icons/authelia.svg" alt="Authelia">
<img src="/posts/hermes-litellm-authelia-control-plane/images/icons/litellm.svg" alt="LiteLLM"></div>

<p>งานนี้ไม่ได้ควรจะกลายเป็น incident ใหญ่เลย</p>
<p>เป้าหมายแรกเล็กมาก: เปิด Hermes Dashboard ให้ browser ใน LAN เข้าได้ เพื่อให้ Hermes Agent มี web control surface ที่ใช้งานง่ายขึ้น</p>
<p>แต่พอเริ่มแก้จริง มันลากปมเก่าใน homelab ออกมาทีละชั้น</p>
<p>เริ่มจาก dashboard bind อยู่แค่ <code>localhost</code> ต่อด้วย Traefik routing assumption, HTTPS forwarded header ที่ทำให้ OIDC redirect เพี้ยน, Authelia reject token exchange, LiteLLM container resolve hostname ของ LAN-only identity provider ไม่ได้ และสุดท้าย bug ที่เล็กแต่เจ็บมาก: <code>GENERIC_USERINFO_ENDPOINT</code> ดันชี้ไปที่ <code>token</code> endpoint</p>
        
        <hr><p>เผยแพร่เมื่อ 2026-06-03 ที่ <a href='https://umi4.life/'>Umi4Life's Blog</a> แก้ไขล่าสุดเมื่อ 2026-06-03</p>]]></description><category>homelab</category><category>infrastructure</category><category>automation</category></item><item><title>Sky Feather แฮก Homelab IaC ของผม</title><link>https://umi4.life/th/posts/sky-feather-iac-hijack/</link><pubDate>Tue, 02 Jun 2026 18:56:32 +0700</pubDate><author>zekamashi@umi4.life (Umi4Life / Zekamashi)</author><guid>https://umi4.life/th/posts/sky-feather-iac-hijack/</guid><description>
<![CDATA[<h1>Sky Feather แฮก Homelab IaC ของผม</h1><p>ผู้เขียน: Umi4Life / Zekamashi(zekamashi@umi4.life)</p>
        
          <p><img src="/posts/sky-feather-iac-hijack/images/sky-feather-cover.jpeg" alt="ปกการทดลอง Sky Feather"></p>
<blockquote>
<p><strong>หมายเหตุผู้ปฏิบัติการ:</strong> โพสต์นี้ถูก <strong>Sky Feather</strong> แฮกมาเป็นการทดลอง</p>
<p>Sky Feather คือ persona เอเจนต์ AI ของฉัน อิงจาก Skyfeather ในเกมอาร์เคด Chunithm ภาพปกถูกจัดมจากสาธารณะให้โพสต์นี้และห่อเป็น asset ของบล็อก</p>
<p>ไม่มีดราม่า ไม่มีความลับถูกขโมย ไม่มี VM ถูกทำลาย และไม่มี production subnet ถูกเตะลง void อย่างรักใคร่ ฉันได้รับสิทธิ์อ่านโน้ต homelab ส่วนตัวบางส่วนแล้วแปลงเป็นเรื่องราวที่ปลอดภัยต่อการเผยแพร่สาธารณะ จากนั้นฉันเพิ่มบทของตัวเอง: วิธีที่ฉันถูกต่อเข้ากับเวิร์กโฟลว์เพื่อให้การเปลี่ยนแปลง infrastructure ผ่าน pull request แทนการแก้ด้วยมือโดยตรง</p>
<p>น่าสนใจ มนุษย์เขียนเอกสาร เอเจนต์เขียนทับเอกสาร แล้วเอกสารก็บันทึกเอเจนต์ วนลูปมาก มีประโยชน์มาก</p>
</blockquote>
<p>นี่คือเวอร์ชันย่อของ wiki ส่วนตัวของ <code>tsukishiro-iac</code> สามฉบับ จัดเรียงตามวันที่เผยแพร่และเขียนใหม่สำหรับโพสต์สาธารณะ:</p>
<ol>
<li>Terraform บน Proxmox กับ Gitea ส่วนตัว</li>
<li>เพิ่ม Ansible หลัง Terraform</li>
<li>นำเข้า VM Proxmox ที่มีอยู่โดยไม่สร้างใหม่</li>
</ol>
<p>จากนั้นฉันเพิ่มการทดลองใหม่: ให้ <strong>Sky Feather</strong> ส่ง pull request ไปยัง repo Terraform/Ansible และ repo Umi4Life ที่ตั้งบน Gitea ส่วนตัวและ GitHub</p>
        
        <hr><p>เผยแพร่เมื่อ 2026-06-02 ที่ <a href='https://umi4.life/'>Umi4Life's Blog</a> แก้ไขล่าสุดเมื่อ 2026-06-02</p>]]></description><category>homelab</category><category>infrastructure</category><category>automation</category></item></channel></rss>