git push
$ git commit -m "new episode"
$ git push origin main
→ GitHub Actions triggered
Here we go!
Available for hire · Phnom Penh or remote
I run production on Linux, Docker, Kubernetes and Proxmox: hardened servers, CI/CD that ships on every push, backups that actually restore, and monitoring that pages before customers notice.

Hi! I'm Pisal ✦
Chapter 01 · whoami

Nice to meet you!
pisal@devops:~$ whoami
Pisal HENG — Cloud & DevOps Engineer with extensive experience in Linux administration, container orchestration, CI/CD pipelines, and infrastructure automation. Passionate about building resilient, observable systems that scale.
pisal@devops:~$ cat expertise.txt
pisal@devops:~$ uptime
Always learning. Always building.
Chapter 02 · special moves
Chapter 03 · systems in production
Café point of sale, self-hosted end to end
Problem · A café needed a POS that keeps selling when the internet drops and never loses a sale or a receipt.
A shared TLS edge on a single VPS
Problem · Several apps on one VPS, each wanting ports 80 and 443 and its own certificates.
Push to production in one command: git push
Problem · Ship a static site safely with zero manual steps and a way back when a release is bad.
Chapter 04 · how this very site ships
$ git commit -m "new episode"
$ git push origin main
→ GitHub Actions triggered
Here we go!
✓ npm run build (TypeScript)
✓ caddy validate
✓ hadolint Dockerfile
No bugs shall pass.
docker buildx build
→ multi-stage: node → caddy
→ ghcr.io/xxpisal/portfolio:<sha>
Power level rising…
docker compose pull
compose up --wait → healthy
✗ unhealthy? roll back
Rolling out!
DEPLOYED!!
xxpisal.online is live
health: ok · Telegram pinged ✓
Chapter 05 · contact
Let’s build something resilient together.
Infrastructure, CI/CD, Kubernetes, hardening, or a server that keeps falling over at 3 a.m. — I’m happy to help.
TO BE CONTINUED ⟶
つづく