The Blog

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

All #self-hosted (41) #open-source (41) #deployment (40) #docker (40) #vps (40) #laravel (14) #php (9) #security (6) #sysadmin (6)
I put Ghost on a VPS and Nginx returned 502 until port 2368 was actually up
Featured

I put Ghost on a VPS and Nginx returned 502 until port 2368 was actually up

I wanted a publishing stack I control — posts, members, newsletters — not another hosted CMS. Ghost on Ubuntu 24.04 with Docker or Ghost-CLI is fine until Nginx 502s because nothing is listening on 2368, or Ghost-CLI refuses to install under /root. Here's that wall.

Jun 29, 2026 · 3 min read

Read article
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.

Read PHP 8.6: what is real vs rumor this week

PHP 8.6: what is real vs rumor this week

PHP 8.6.0beta3 tagged 10 Sep 2026. GA is still scheduled 19 Nov. I would not put beta FPM on a VPS. I would run the official CLI container, try clamp() and ? placeholders, and leave Laravel 13 on 8.5.

Sep 11, 2026 · 8 min read