Interested in Linux, self-hosted services, and software development, with occasional posts about games. This blog documents problems I run into, solutions that work, and tools or projects worth sharing.
A from-scratch guide on using xcaddy to build a custom Caddy image with plugins, including each plugin’s purpose, multi-stage Dockerfile design, and a complete CI/CD workflow via GitHub Actions that auto-builds and pushes to Docker Hub weekly.
Using Immich as an example, this article shows how to convert docker-compose.yml into Quadlet files, manage container lifecycles with Systemd, and solve common permission and persistence issues encountered in practice.
Documenting the hybrid-auto-engine OOM issue encountered when deploying MinerU on an 8GB GPU, and why vlm-auto-engine turns out to use less VRAM — backed by source code analysis and the final solution.
This article records how to configure EXTENSIONS_GALLERY for code-server under a systemd user service and avoid the common pitfalls around % and quoting.
This article explains how to resolve the issue where Netbird and Mihomo (Tun Mode) fail to establish P2P connections by adding specific routing table rules.
Use Git includeIf to automatically switch identity configurations for work, personal, and open-source projects by repository path, branch, or remote URL.