All posts

56 posts about Backend, Cloud, DevOps and Homelab

BOT
MSG
FREE
Telegram Bot
alert • monitor • notify
BackendDevOpsNestJS

NestJS Telegram Alerts: Exception Filter, Jobs, and Deploy

Telegram Bot API in NestJS: TelegramModule, exception filter for 5xx alerts, BullMQ job failures, and deploy hooks — no external libraries needed.

11 min read18/06/2026
LOST
DIRTY
PHTM
Isolation Level
rc • rr • for update
BackendMySQLDatabase

MySQL Isolation Levels: Common Race Conditions and How to Fix Them

MySQL's default REPEATABLE READ doesn't prevent every race condition. Dirty reads, lost updates, phantom reads, write skew — which isolation level prevents which, when SELECT FOR UPDATE is the real fix, and when optimistic locking is better.

12 min read18/06/2026
DTO
DB
Validate in Code
dto • service • not db
BackendDatabase

Stop Using Database Constraints as Input Validation: Use DTOs Instead

Many backends rely on NOT NULL, VARCHAR(n), and UNIQUE constraints to catch bad input. This is the wrong layer for validation — databases aren't built for it. Where validation actually belongs: the DTO layer and service layer, before data ever reaches the DB.

10 min read18/06/2026
TX1
LOCK
TX2
Deadlock
innodb • log • rollback
BackendMySQLDatabase

MySQL Deadlock: How to Read InnoDB Logs and Reduce Occurrence

MySQL auto-resolves deadlocks but randomly rolls back a transaction, causing errors at the app layer. How to read SHOW ENGINE INNODB STATUS to find exactly which row was locked, common causes, and 5 ways to reduce deadlock probability.

12 min read18/06/2026
1
+N
SQL
SLOW
N+1 Query
orm • join • batch
BackendDatabase

N+1 Query in Prisma, TypeORM, and Sequelize: How to Detect and Fix It

N+1 query causes no errors but makes APIs slow as data grows — ORM fetches a list with 1 query then fires N more for each item. How to catch it with SQL logging, count queries per request, and fix with eager loading, batching, or DataLoader.

11 min read18/06/2026
12s
200ms
MySQL Query
explain • scan • optimize
DatabaseMySQLSQL

Can SQL handle large datasets? Indexes and query design in MySQL

Why SQL still works well at scale when schema, indexes, and query design are correct, from filtering before joins to MySQL patterns for millions of customers.

11 min read18/06/2026
12s
200ms
MySQL Query
explain • scan • optimize
BackendMySQLDatabase

MySQL ORDER BY + LIMIT Slow Despite Index: Filesort, Composite Index, and Cursor Pagination

ORDER BY combined with LIMIT can trigger a filesort over millions of rows even with indexes in place. How MySQL picks its execution plan, how to read EXPLAIN, and 4 practical optimization patterns.

12 min read18/06/2026
N7
N8
N9
N11
NestJS Upgrade
ai • diff • test
BackendNestJSAI

How to upgrade NestJS 7 to 11 with AI and fewer mistakes

A practical way to upgrade an old NestJS service with AI: move one major version at a time, isolate breaking changes, review git diffs, and avoid changing business logic.

13 min read18/06/2026
DTO
MOD
ENT
Backend Layers
controller • service • db
BackendArchitecture

How to separate DTO, Model, and Entity in backend code

How to separate DTO, Model, and Entity in backend code so controller, service, and database layers do not get mixed together, especially with TypeORM.

12 min read18/06/2026
BE
FE
QA
Role Boundaries
api • dto • test logic
BackendArchitecture

How to separate backend, frontend, and QA responsibilities in a team

How to separate backend, frontend, and QA responsibilities to avoid blame, broken API contracts, unclear validation, and test cases drifting from the real system logic.

11 min read17/06/2026
WRK
vs
PGS
Workers vs Pages
api • deploy • edge fn
CloudCloudflare

Cloudflare Workers vs Pages: when to use each

Compare Workers and Pages: serverless functions, static hosting, Pages Functions, use cases, and how to choose for each project.

10 min read17/06/2026
KV
Q
JOB
Queue & KV
async • cache • worker
CloudCloudflare

Use Cloudflare Queues and KV for side projects

Use Cloudflare Queues for async jobs and Workers KV for cache or config in personal projects running on Workers or Pages.

12 min read16/06/2026
DNS
CDN
Cloudflare
dns • cdn • ssl • ddos
CloudCloudflareDNS

4 Cloudflare features worth enabling: DNS, CDN, SSL, DDoS

Four core Cloudflare features worth using for a website: faster DNS, free CDN, automatic SSL, and DDoS protection.

12 min read16/06/2026
D1
SQL
Cloudflare D1
sqlite • free • edge
CloudCloudflareDatabase

Cloudflare D1 Database: when should you use it?

Cloudflare D1 is serverless managed SQLite for Workers and Pages, useful for small side projects but limited if you later need MySQL/PostgreSQL.

10 min read16/06/2026
R2
vs
S3
Object Storage
egress • free tier • cost
CloudCloudflareAWS

Cloudflare R2 vs AWS S3: Cost, Egress Fees and Free Tier Compared

Compare Cloudflare R2 and AWS S3 on pricing, egress fees, free tiers, when R2 is cheaper, and how to migrate with an endpoint change.

11 min read16/06/2026
SHR
R5
Synology RAID
shr • raid5 • nas drive
HomelabProxmoxSynology

Synology on Proxmox: pros, cons, SHR, and RAID

Pros and cons of running Synology DSM on Proxmox through Xpenology, plus RAID 0/1/5/6, SHR, and SHR-2 comparison.

13 min read16/06/2026
VM1
VM2
VM3
Proxmox VE
vm • template • clone
HomelabProxmoxLinux

How to Use Proxmox to Create Isolated VMs for Each Project

Install Proxmox VE, create VMs, clone from templates, and manage storage for homelab projects that need isolated environments.

14 min read16/06/2026
HIT
TTL
DB
Cache Strategy
aside • write-through • ttl
BackendRedisDatabase

Caching strategies to reduce database load

Practical caching strategies for reducing database and API load: cache-aside, write-through, write-behind, TTLs, and invalidation.

13 min read16/06/2026
SSH
FMT
VSCode Ext
ssh • docker • prettier • lint
BackendVSCode

5 VS Code extensions backend developers should install

Remote SSH, Docker, Prettier, ESLint, and Code Spell Check: five VS Code extensions for everyday backend development.

10 min read16/06/2026
HAP
×3
HAProxy LB
round-robin • health • scale
DevOpsHAProxyDocker

How to Load Balance with HAProxy on Docker Compose

Deploy HAProxy as a Docker Compose load balancer with round-robin routing, health checks, and the Stats UI for monitoring backends.

12 min read16/06/2026
SRP
DIP
OCP
SOLID in Practice
clean • test • scale
BackendArchitecture

Apply SOLID to reduce coupling in large projects

A practical guide to applying SOLID in real projects to reduce coupling, avoid messy code, improve testability, and make large systems easier to extend.

10 min read16/06/2026
API
RAM
N+1
State and Scale
cron • file • memory
BackendArchitecture

Stateless vs stateful code when scaling instances

Understand stateless and stateful backend code, plus common scaling bugs like duplicate schedulers, local files, and memory state.

10 min read16/06/2026
EC2
LOG
CPU
EC2 Production
logs • disk • monitor
CloudAWSDevOpsDocker

Manage EC2 production: Docker logs, CPU, and RAM

A practical EC2 production checklist: limit Docker logs, avoid full disks, and monitor CPU, RAM, disk, network, and status checks.

8 min read16/06/2026
NS
DNS
CF
Cloudflare DNS
A • CNAME • proxy
CloudCloudflareDNS

Move nameservers to Cloudflare and point DNS records

Move a domain to Cloudflare nameservers, point A or CNAME records to a VPS, and choose between DNS only and Proxied mode.

10 min read16/06/2026
MINT
USB
APP
Linux Mint
install • setup • daily
Linux

Install Linux Mint and set it up for daily use

Install Linux Mint from a bootable USB, choose the right edition, configure basic settings, and start using it day to day.

11 min read16/06/2026
PC
LNX
LAB
Old PC Reuse
server • nas • app
HomelabLinux

What can an old PC do? Linux, homelab, NAS, apps

Why an old PC may feel slow on Windows but become valuable again for Linux users, homelab setups, mini servers, NAS use, and hosting personal web apps.

9 min read16/06/2026
TAIL
WEB
Tailscale Funnel
private • public • tunnel
HomelabTailscale

Use Tailscale Funnel to expose a machine online

Use Tailscale for remote access and Tailscale Funnel to expose a web service, with Serve vs Funnel differences and tradeoffs.

10 min read16/06/2026
Old PC NAS
samba • lan • dav
HomelabLinuxUbuntu

Turn an old PC into a NAS with Ubuntu and Samba

A practical guide to turning an old PC into a storage NAS with Ubuntu, using Samba for LAN file sharing and WebDAV over HTTPS for remote or internet access.

11 min read16/06/2026
AWS EC2 Public
sg • eip • ssh • web
CloudAWS

Expose an app with AWS EC2 and Elastic IP

A practical guide to launching an AWS EC2 instance, understanding Security Groups, attaching an Elastic IP, and exposing an app to the internet more safely.

10 min read16/06/2026
AWS
HEAD
TAIL
T3 Headscale
cluster • mesh • nginx
CloudAWSHomelab

Use EC2 t3.micro, Headscale, and Tailscale for homelab

Use EC2 t3.micro to host Headscale, connect PCs with Tailscale, and add Nginx for reverse proxy or public app access.

11 min read16/06/2026
HTML
FREE
Pages Static Blog
cdn • build • static
CloudCloudflare

Build a free static blog with Cloudflare Pages

Use Cloudflare Pages to host a static blog for free, understand what static sites are, why they scale, and which limits still matter.

10 min read16/06/2026
IDX
SLOW
MySQL Index
scan • query • data
DatabaseMySQLSQL

The role of indexes and the query patterns that make MySQL slow

Why indexes matter in MySQL, and common slow-query patterns such as missing indexes, selecting too much data, or filtering in application code.

10 min read16/06/2026
1|500
EX
Logical Exception
nestjs • code • status
BackendNestJS

NestJS LogicalException and internal error codes

Standardize NestJS logic errors with message codes, LogicalException, HttpException, and internal error codes for faster debugging.

9 min read16/06/2026
FK
DB Consistency
schema • key • rule
DatabaseSQLBackend

Design a consistent database with fewer data bugs

Practical database design rules for consistent data: naming, primary keys, foreign keys, unique constraints, not null, and enough normalization.

10 min read16/06/2026
APT
OK
Docker Install
ubuntu • group • hello
DevOpsDockerLinuxUbuntu

Install Docker on Ubuntu with docker.io

Install Docker quickly on Ubuntu with apt, add your user to the docker group, and verify the setup with hello-world.

7 min read16/06/2026
AI
IDE
TAB
AGT
Coding Tool Compare
codex • claude • cursor • copilot
AI

Codex vs Claude Code vs Cursor vs GitHub Copilot

Compare Codex, Claude Code, Cursor, and GitHub Copilot on pricing, VS Code support, autocomplete, agent coding, and use cases.

12 min read16/06/2026
PM2
LOG
UP
NestJS + PM2
restart • logs • reboot
BackendNestJSDevOpsPM2

Run NestJS in production with PM2 restart and logs

Use PM2 to run NestJS on a Linux server, build the app, start it with an ecosystem file, inspect logs, restart on crashes, and restore after reboot.

9 min read16/06/2026
AI
LLM
UI
Ollama Local
free • local • chat
AIOllama

Run Ollama locally with Docker Compose and Open WebUI

Install Ollama locally with Docker Compose, use Open WebUI for chat, call the local API, and choose a model for your machine.

10 min read16/06/2026
GPT
5.5
OpenAI News
agentic • coding • release
News

What is GPT-5.5 and is it in ChatGPT and API?

A quick update on OpenAI GPT-5.5: release date, strengths in coding and agentic work, and availability in ChatGPT and the API as of June 16, 2026.

5 min read16/06/2026
CF
F5
Anthropic News
security • policy • ai
News

What is Claude Fable 5 and why was access suspended?

Claude Fable 5 was announced by Anthropic on June 9, 2026, but access to Fable 5 and Mythos 5 was suspended on June 12, 2026.

5 min read16/06/2026
JOB
30s
BullMQ Timeout
stalled • attempt • worker
BackendNestJSRedis

BullMQ Job stalled with ElastiCache while Redis is healthy

Why BullMQ timeout and Job stalled errors happen with AWS ElastiCache Redis, and how to fix worker and connection settings.

7 min read15/06/2026
UB
24.04
LTS
Ubuntu Setup
install • server • apt
LinuxUbuntu

Install Ubuntu 24.04 LTS for Vietnamese users

Step-by-step Ubuntu 24.04 LTS installation for a dev machine or personal desktop, with notes for stable Vietnamese typing.

12 min read15/06/2026
SMB
Drive
Photos
Share
Synology NAS
lan • apps • public
HomelabSynology

Use Synology NAS with SMB, Drive, and Photos

Use Synology NAS for SMB/Samba, Synology Drive, Photos, mobile apps, and controlled file sharing on LAN or over the Internet.

11 min read15/06/2026
PC
TNL
WEB
Cloudflare Tunnel
no port forward
CloudCloudflareHomelab

Use Cloudflare Tunnel when router ports are blocked

How to use Cloudflare Tunnel to expose an old PC or mini server when you cannot open router ports, are behind CGNAT, or are on a shared apartment network.

10 min read15/06/2026
API
DB
Redis
compose
DevOpsDocker

Docker Compose for multi-project local dev

Use Docker Compose to run multiple projects side by side, avoid port conflicts, isolate MySQL and Redis, and keep local dev easy to reset.

14 min read15/06/2026
API
JOB
WORKER
BullMQ Queue
retry • delay • async
BackendNestJSRedis

Redis queue in NestJS with BullMQ: how to implement it

Use Redis as a queue in NestJS with BullMQ, including producer-consumer flow, retries, delayed jobs, and production notes.

10 min read15/06/2026
SSL
NPM
APP
Proxy Manager
domain • ssl • docker
DevOpsNginxDocker

Nginx Proxy Manager with Docker Compose and SSL

Run Nginx Proxy Manager with Docker Compose, point multiple domains to one server, reverse proxy internal apps, and request SSL certificates.

9 min read15/06/2026
VI
Linux Input
ibus • fcitx5 • unikey
LinuxUbuntu

Ubuntu Vietnamese input: ibus-bamboo or fcitx5-unikey?

Compare ibus-bamboo and fcitx5-unikey on Ubuntu, including GNOME, Electron apps, predict bar issues, and stable typing choices.

8 min read15/06/2026
PVE
DSM
Proxmox Storage
xpenology • vm • disk
HomelabProxmoxSynology

Xpenology on Proxmox VE 8.2.4 with HDD passthrough

How to install Xpenology DSM 7.2.1 on Proxmox VE 8.2.4 and configure HDD passthrough so DSM can read SMART data natively.

12 min read12/06/2026
EBS
XFS
Resize EBS
ec2 • volume • filesystem
CloudAWSLinux

Resize an EC2 EBS volume and extend XFS without data loss

Step-by-step guide to expanding an EBS volume and growing an XFS filesystem on EC2 Ubuntu — online and without downtime.

8 min read10/06/2026
RDS
TCP
RE
Redis Reconnect
failover • readonly • retry
BackendNestJSRedis

NestJS Redis disconnects: configure ioredis reconnect

How to configure ioredis in NestJS to reconnect safely when Redis disconnects, TCP idle timeouts happen, or ElastiCache failover returns READONLY.

6 min read08/06/2026
12s
200ms
MySQL Query
explain • scan • optimize
DatabaseMySQLSQL

Optimizing a MySQL query on 300k+ records

Case study: bringing a MySQL query from 12 seconds down to 200ms using EXPLAIN, composite indexes, and a query rewrite.

10 min read05/06/2026
OOM
137
Docker Memory
oomkilled • exit • limit
DevOpsDocker

Container exit 137: debug OOMKilled and memory limits

Debug Docker or Kubernetes containers restarting with exit code 137, tune Node.js memory limits, and inspect possible memory leaks.

9 min read02/06/2026
PVE
DSM
Proxmox Storage
xpenology • vm • disk
HomelabProxmox

Proxmox cluster loses quorum and how to recover

pvecm status reports 'not in quorum', VMs freeze — how to use pvecm expected, pvecm delnode, and set up QDevice to prevent it next time.

11 min read28/05/2026
SHR
RAID
NAS
Synology Storage
disk • expand • redundancy
HomelabSynology

Add drives to Synology SHR without data loss

How to add a drive to an SHR storage pool on DSM, track reshape progress via /proc/mdstat, and what to watch out for to keep your data safe.

8 min read25/05/2026
NGX
413
MB
Nginx Upload
413 • body size • proxy
DevOpsNginx

Nginx 413 after client_max_body_size: how to fix it

Why Nginx still returns 413 even after setting client_max_body_size, and how to fix it when you have multiple proxy or reverse proxy layers.

5 min read20/05/2026