<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Lucky Wirasakti — Writing</title>
    <link>https://luckywirasakti.vercel.app/blog</link>
    <description>Notes on full stack engineering, reliability, and the systems behind production software.</description>
    <language>en</language>
    <lastBuildDate>Tue, 02 Jun 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://luckywirasakti.vercel.app/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Ngamanin VPS Biar Nggak Gampang Dibobol</title>
      <link>https://luckywirasakti.vercel.app/blog/hardening-vps-ssh-ufw-fail2ban</link>
      <guid isPermaLink="true">https://luckywirasakti.vercel.app/blog/hardening-vps-ssh-ufw-fail2ban</guid>
      <description>Habis nge-deploy banyak service ke VPS, saatnya ngunci pintunya. Catatan praktis bikin user non-root, SSH key-only, firewall pakai ufw, dan fail2ban biar bot scanner nyerah duluan.</description>
      <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
      <category>Security</category>
      <category>DevOps</category>
      <category>Linux</category>
      <category>Self-Hosting</category>
    </item>
    <item>
      <title>Deploy App Sendiri di VPS Pakai Dokploy</title>
      <link>https://luckywirasakti.vercel.app/blog/deploy-app-pakai-dokploy-vps</link>
      <guid isPermaLink="true">https://luckywirasakti.vercel.app/blog/deploy-app-pakai-dokploy-vps</guid>
      <description>Bikin platform deploy ala Vercel di VPS sendiri pakai Dokploy. Push ke Git, app langsung jalan dengan HTTPS otomatis, tanpa bayar per seat dan tanpa vendor lock-in.</description>
      <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
      <category>Dokploy</category>
      <category>DevOps</category>
      <category>Docker</category>
      <category>Self-Hosting</category>
    </item>
    <item>
      <title>Bikin Asisten AI Pribadi di Telegram Pakai Hermes Agent</title>
      <link>https://luckywirasakti.vercel.app/blog/hermes-agent-telegram-bot</link>
      <guid isPermaLink="true">https://luckywirasakti.vercel.app/blog/hermes-agent-telegram-bot</guid>
      <description>Pasang Hermes Agent dari Nous Research di server, sambungin ke Telegram, dan jadiin asisten AI yang bisa diajak ngobrol dari HP kapan aja — sambil dia kerja di VPS.</description>
      <pubDate>Sun, 31 May 2026 00:00:00 GMT</pubDate>
      <category>AI</category>
      <category>Telegram</category>
      <category>Hermes</category>
      <category>Self-Hosting</category>
    </item>
    <item>
      <title>Pasang Caddy + 9Router di Server Pakai Docker Compose</title>
      <link>https://luckywirasakti.vercel.app/blog/deploy-caddy-9router-docker-compose</link>
      <guid isPermaLink="true">https://luckywirasakti.vercel.app/blog/deploy-caddy-9router-docker-compose</guid>
      <description>Catatan santai cara nge-deploy 9Router di belakang Caddy via SSH pakai Docker Compose, lengkap dengan HTTPS otomatis dan tanpa repot setting basic auth.</description>
      <pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
      <category>Docker</category>
      <category>Caddy</category>
      <category>DevOps</category>
      <category>Self-Hosting</category>
    </item>
    <item>
      <title>Taming Campaign Traffic with Redis Locks</title>
      <link>https://luckywirasakti.vercel.app/blog/redis-locking-for-campaign-traffic</link>
      <guid isPermaLink="true">https://luckywirasakti.vercel.app/blog/redis-locking-for-campaign-traffic</guid>
      <description>How a rule-based WhatsApp chatbot survived nationwide voucher drops without double-spending — a practical look at distributed locking and rate limiting.</description>
      <pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate>
      <category>Redis</category>
      <category>Architecture</category>
      <category>Backend</category>
    </item>
    <item>
      <title>Fanning Out Webhooks Without Tears</title>
      <link>https://luckywirasakti.vercel.app/blog/webhook-fan-out-without-tears</link>
      <guid isPermaLink="true">https://luckywirasakti.vercel.app/blog/webhook-fan-out-without-tears</guid>
      <description>Routing WhatsApp events to several subscriber apps sounds simple until one slow consumer takes everyone down. Notes on fault-tolerant fan-out.</description>
      <pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <category>Reliability</category>
    </item>
    <item>
      <title>Swapping Google Maps for OpenStreetMap</title>
      <link>https://luckywirasakti.vercel.app/blog/migrating-google-maps-to-openstreetmap</link>
      <guid isPermaLink="true">https://luckywirasakti.vercel.app/blog/migrating-google-maps-to-openstreetmap</guid>
      <description>A corporate platform needed maps without the per-request bill. What the migration actually involved, and where the sharp edges were.</description>
      <pubDate>Sun, 23 Nov 2025 00:00:00 GMT</pubDate>
      <category>Frontend</category>
      <category>Maps</category>
    </item>
  </channel>
</rss>