A WireGuard tunnel needs route ownership, forwarding, and a valid return path before other VPN peers can reach a private LAN behind one client.
Monthly Archives: August 2026
How to Separate Face Matching from Membership Validation
Face recognition confirms identity; a separate authorization system should decide whether that person currently has access.
How to Renew an Expired Hestia Control Panel Certificate
Learn why a Hestia panel hostname certificate is managed at server level and how to verify DNS, renew it safely, and troubleshoot validation errors.
How to Wrap Mixed CJK and English Text in Generated Images
The main lesson is simple: mixed Japanese, Chinese, Korean, and English text needs more than ordinary word wrapping. A reliable image renderer must choose a font with the right glyphs, preserve Latin words, allow CJK text to break between characters, and invalidate old cached images after the logic changes. Why normal wrapping fails English text Continue reading “How to Wrap Mixed CJK and English Text in Generated Images”
How to Update a Derived Field in a Filament Form
A practical pattern for updating a read-only, copyable field when a user changes a related Filament form selection.
Why npm Works Over SSH but Fails in Automated Deployments
Learn why npm can work in an SSH session but fail in an automated deployment, and how to load NVM explicitly in a non-interactive shell.
How to Prevent Root-Owned Laravel Logs in Docker
Prevent Laravel daily logs from becoming root-owned by running Artisan, schedulers, and queue processes as the container’s application user.
How to Keep Sequence Numbers Continuous Across Grouped Data
Keep the group identifier and the global sequence number separate. This prevents numbering from restarting when data is divided into sections.
How to Declare a Page’s Language Correctly in HTML
What I learned about HTML language codes, regional variants, right-to-left text, and translated-page links.
Why Filament Table Actions Can Lose Their Record Context
A practical lesson on why Filament modal callbacks can receive a null record and how to choose a more reliable edit flow.
