Benjamin Lu

everyday is cool

Technology

Notes on web development, self-hosting, and troubleshooting.

What to Keep in a Flat-File Website Repository

A flat-file website is easy to move when its source, configuration, and media are easy to find. A fresh checkout is a good test. Can you figure out which files are meant to be edited and which are recreated by the build? Separate content from build output Keep Markdown posts, … Continue reading →

A Local Development VM with Vagrant

A local web project can depend on more than its source files. The Linux distribution, PHP packages, and system configuration can all affect how it runs. Vagrant gives you a way to describe a development VM in a project file and bring it up again when you need it. 1. … Continue reading →

Choosing What Goes on a Homelab VLAN

A home network can grow from a router and a few laptops into a mix of cameras, lab servers, and services that guests should never see. Before creating another VLAN, list which devices need to talk and what they need to reach. Start with one example A camera might need … Continue reading →

Where to Look When a Reverse Proxy Returns 502

A 502 tells you a gateway could not get a valid response from an upstream. With Nginx in front of a web app, the fastest way to narrow it down is to make the same request from the network Nginx uses. 1. Reproduce the failing request and read the log … Continue reading →

Debugging DNS Inside a Docker Container

When a container says it cannot reach a database, test from the app container. A successful lookup on the Docker host may use a different resolver and tells you little about the app’s network. This example assumes a Compose project with an app service and a PostgreSQL service named db … Continue reading →

A Proxmox Backup Is Only Half the Job

A backup job can succeed every night while the actual recovery process remains untested. A small restore drill gives you a better answer to the question that matters during an outage. Can you get the service back? Restore one guest somewhere safe Pick a low-risk VM and restore it under … Continue reading →

Why Your CSS Change Isn’t Showing Up

You change a button color, deploy the site, and still see the old color. There are three places to look: the browser’s CSS rules, the exported files, and the HTTP responses that delivered them. Start with the browser so you can tell which layer needs attention. 1. Find the stylesheet … Continue reading →

What to Check Before Publishing a Static Site

A successful build tells you the export command finished. It takes a few more checks to know whether the generated site is ready to serve. A homepage can exist while its stylesheet, images, or linked pages are missing. Check the output people will actually receive Start with the generated homepage. … Continue reading →

Keeping a Personal Site Easy to Return To

Retrospective web development exercise for the 2026 archive. After stepping away from a personal site, I want to be able to open the project and find the next small thing I was going to do. A short note with the build command, the path to the posts, and the last … Continue reading →

Making a Search Result Worth Clicking

Retrospective web development exercise for the 2025 archive. Build a tiny search index with three Markdown articles. Store each article’s title and canonical URL alongside the text. For a test query that appears in two articles, display both titles and a short excerpt so a reader can tell why each … Continue reading →