<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>wihan.dev · writing</title><description>How-to guides from running Terraform providers, a Dokploy server, and a NixOS machine.</description><link>https://wihan.dev</link><language>en</language><item><title>Using AI coding agents without leaking your secrets</title><link>https://wihan.dev/writing/using-ai-agents-safely-with-1password-and-devenv</link><guid isPermaLink="true">https://wihan.dev/writing/using-ai-agents-safely-with-1password-and-devenv</guid><description>Claude Code, Cursor, and Codex all work by running shell commands, and your shell can read every secret on your machine. Here is how to give an agent the credentials it needs, and nothing else.</description><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate><category>ai</category><category>agents</category><category>security</category><category>1password</category><category>devenv</category></item><item><title>Running a Factorio server with Factorio Server Manager and Docker</title><link>https://wihan.dev/writing/factorio-server-manager-docker</link><guid isPermaLink="true">https://wihan.dev/writing/factorio-server-manager-docker</guid><description>One container, one compose file, and a web UI for mods, saves, and restarts. From a box that has Docker to a factory your friends can join.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate><category>factorio</category><category>docker</category><category>compose</category></item><item><title>Managing Dokploy with a Terraform provider</title><link>https://wihan.dev/writing/managing-dokploy-with-terraform</link><guid isPermaLink="true">https://wihan.dev/writing/managing-dokploy-with-terraform</guid><description>The whole stack behind this site is one Terraform repo - project, environments, apps, domains, DNS - and the goal state is an empty plan.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate><category>terraform</category><category>dokploy</category><category>infra</category></item><item><title>Creating a Dokploy Terraform provider</title><link>https://wihan.dev/writing/creating-a-dokploy-terraform-provider</link><guid isPermaLink="true">https://wihan.dev/writing/creating-a-dokploy-terraform-provider</guid><description>What it takes to write a Terraform provider in Go for a young API - and why the acceptance tests talk to a real server.</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate><category>go</category><category>terraform</category><category>dokploy</category></item><item><title>Securing your Linux VPS with Tailscale</title><link>https://wihan.dev/writing/securing-your-linux-vps-with-tailscale</link><guid isPermaLink="true">https://wihan.dev/writing/securing-your-linux-vps-with-tailscale</guid><description>Take SSH off the public internet entirely - go from a fresh Ubuntu box to one you can only reach over your private tailnet.</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate><category>linux</category><category>security</category><category>tailscale</category><category>ssh</category><category>vps</category></item></channel></rss>