plzhans @plzhans

A blog documenting the troubleshooting behind things I've built.

GitHub LinkedIn code mail rss

Categories
Tags
Latest Posts Popular Posts
Building a Hugo Blog - From Start to SEO A step-by-step guide to building a blog with Notion→Hugo→GitHub Pages, connecting a custom domain, adding multilingual support, and applying security headers.
Web Sep 3, 2026
Local AI/LLM Infrastructure Guide A guide to setting up a local LLM server with Ollama, then connecting Claude Code you already use to run on top of it.
AI Sep 3, 2026
VPN/Remote Access Guide - Which One Should You Pick A guide to choosing the right VPN approach among Tailscale, WireGuard, and wg-easy depending on your situation. Compares starting fast with no port forwarding against running your own server.
Networking Sep 3, 2026
4 Security Headers Flagged by an SEO Audit — Applying Them on Cloudflare Without Code
4 Security Headers Flagged by an SEO Audit — Applying Them on Cloudflare Without Code Explains why SEO audit reports flag HSTS, CSP, X-Content-Type-Options, and Referrer-Policy, and what each header actually does. Covers splitting fixed-value headers into Cloudflare Transform Rules …
Web Aug 30, 2026
How to Back Up Telegram Chats - Export to zip From Your Browser, No Install Required
How to Back Up Telegram Chats - Export to zip From Your Browser, No Install Required Unlike Telegram's official export, this browser-based backup tool lets you specify a date range, select specific chats, view messages as chat bubbles, and anonymize data. It works instantly with no …
Etc Jul 27, 2026
How to Install WireGuard and Set Up Client Connections
How to Install WireGuard and Set Up Client Connections Explains how to install WireGuard VPN on a Linux server, covering key generation, firewall opening, and service registration. Includes Mac client conf setup and GUI connection verification steps to …
Networking Jul 10, 2026
How to Create an Oracle Cloud Always Free A1 Instance - Public IP Connection and SSH Security Setup
How to Create an Oracle Cloud Always Free A1 Instance - Public IP Connection and SSH Security Setup A step-by-step guide to creating an Oracle Cloud Always Free A1 (ARM) instance. Covers everything from selecting the free spec to connecting a public IP, setting up an SSH key, and restricting SSH …
Cloud Jul 10, 2026
How to Install Ollama and Set Up a Local LLM Server
How to Install Ollama and Set Up a Local LLM Server This explains how to run a local LLM on a Linux server using Ollama. It covers installation, external access configuration, model selection, and HTTP API call examples to outline the process of …
AI Jul 3, 2026
How to Use Claude Code with Ollama Local LLMs
How to Use Claude Code with Ollama Local LLMs Explains how to connect Claude Code to an Ollama local LLM. Covers the Claude-compatible API, environment variables, model selection, and when you need a LiteLLM proxy.
AI Jul 3, 2026
Installing Tailscale on Linux - Secure Remote VPN Setup
Installing Tailscale on Linux - Secure Remote VPN Setup This post explains how to install Tailscale on a Linux server to set up a secure remote VPN environment. It also covers outbound-based connections, P2P communication, DERP relay, and how to use Serve …
Networking Jul 3, 2026
How to Install OpenClaw Node Mode and Connect Remote Infrastructure
How to Install OpenClaw Node Mode and Connect Remote Infrastructure This post explains how to connect a remote server to a gateway using OpenClaw node mode. It covers the infrastructure control flow from installation, run verification, device approval, to systemd …
AI Jun 29, 2026
How to Integrate Samsung SmartThings API - From CLI Installation to OAuth Authentication
How to Integrate Samsung SmartThings API - From CLI Installation to OAuth Authentication A step-by-step guide covering CLI installation, OAuth app creation, Redirect URI configuration, token issuance, and device listing for Samsung SmartThings API integration.
Etc Jun 29, 2026
Mac Office Activation Guide | Install LTSC with Volume License VL Serializer
Mac Office Activation Guide | Install LTSC with Volume License VL Serializer A step-by-step guide to installing and activating Microsoft Office on Mac using a volume license. Covers LTSC installer selection, VL Serializer application, and activation verification.
Etc Jun 17, 2026
How to Issue a Free SSL Certificate on Synology DSM | Automatic Let’s Encrypt Renewal with acme.sh + Cloudflare DNS
How to Issue a Free SSL Certificate on Synology DSM | Automatic Let’s Encrypt Renewal with acme.sh + Cloudflare DNS A guide to issuing and auto-renewing a Let's Encrypt free SSL certificate on Synology DSM using acme.sh and Cloudflare DNS validation. Covers synology_dsm deploy-hook setup and troubleshooting 2FA and …
Etc May 16, 2026
Terraform Practical Guide: Installation, plan/apply, AWS SSO & AssumeRole, State Backend
Terraform Practical Guide: Installation, plan/apply, AWS SSO & AssumeRole, State Backend Covers Terraform installation through the basic flow of init, plan, and apply along with project structure. Explains the difference between AWS SSO and AssumeRole for credentials, the backend concept …
Devops May 6, 2026
age Usage Guide: Encrypt Team Secret Files with Recipients and Decrypt with Private Keys
age Usage Guide: Encrypt Team Secret Files with Recipients and Decrypt with Private Keys A guide to encrypting team secret files with public keys (recipients) and decrypting them with private keys using age. Covers key generation, recipients management, differences from GPG, and why …
Security May 1, 2026
Automating Claude Account Switching
Automating Claude Account Switching This post summarizes how to quickly switch between Claude Code accounts without logging out. It covers an automation script that backs up and swaps macOS Keychain credentials using the security …
AI Mar 26, 2026
Resolving Naver Map Open API Authentication Failure (200): Changing ncpClientId to ncpKeyId
Resolving Naver Map Open API Authentication Failure (200): Changing ncpClientId to ncpKeyId This post summarizes the cause of the Authentication Failed (200) error in the Naver Map Open API. It covers how console integration changed ncpClientId, govClientId, and finClientId to ncpKeyId, as …
Cloud Mar 24, 2026
Keeping the OpenVPN Client IP with a wg-easy WireGuard MASQUERADE Exception
Keeping the OpenVPN Client IP with a wg-easy WireGuard MASQUERADE Exception This post explains why the request IP gets replaced with the VPN server IP due to MASQUERADE in wg-easy WireGuard, and how to fix it. By excluding a specific destination range from the iptables NAT …
Networking Mar 19, 2026
Installing Docker and Docker Compose on Amazon Linux 2023 ARM64 EC2
Installing Docker and Docker Compose on Amazon Linux 2023 ARM64 EC2 This post covers installing Docker with dnf on Amazon Linux 2023 ARM64 (aarch64) EC2, including service activation and configuring docker group permissions. It also covers installing the Docker …
Cloud Mar 19, 2026