The Blog

Practical PHP, Laravel, devops, and AI-assisted workflow notes from Md Zia Uddin.

All #self-hosted (46) #open-source (46) #deployment (45) #docker (45) #vps (45) #laravel (23) #php (19) #security (11) #sysadmin (6)
Read I self-hosted FileBrowser Quantum on Ubuntu 24.04 — a missing config.yaml became a directory

I self-hosted FileBrowser Quantum on Ubuntu 24.04 — a missing config.yaml became a directory

I wanted a browser file manager after the original File Browser archive, not another Nextcloud. Quantum came up on Docker. A file bind for a missing config.yaml became a directory and the container never started. Host paths in sources left the UI empty. Loopback 8080, directory mount, /folder inside the container — that is the lab path.

Oct 19, 2026 · 9 min read

Read I self-hosted Headplane on Ubuntu 24.04 — cookie_secure ate the first login

I self-hosted Headplane on Ubuntu 24.04 — cookie_secure ate the first login

I wanted a browser UI for Headscale instead of another evening of docker exec. Headplane came up on Docker. cookie_secure defaults true, so http://IP:3000 never kept a session. Official Docker docs still pin Headscale 0.26.0, which 0.7.x dropped — /version 404s and the UI keeps retrying. Loopback 3000, Headscale 0.29.3, /admin behind Caddy — that is the lab path.

Oct 12, 2026 · 15 min read

Read I self-hosted Tagr on Ubuntu 24.04 — the compose file left the library commented out

I self-hosted Tagr on Ubuntu 24.04 — the compose file left the library commented out

I wanted browser tag edits on the same VPS as Jellyfin, not another media server. Tagr came up on Docker. Official compose comments the /music binds and ships AUTH_SECRET as change-me. A scan with zero tracks is the missing mount. AUTH_URL left as your-domain.com sent logout to the wrong host. Loopback 3000, real bind, persisted /data — that is the lab path.

Oct 5, 2026 · 9 min read

Get new posts in your inbox

No spam. One short email per new article — practical PHP, Laravel, devops, and AI-assisted workflows.