Frontend 12 มิถุนายน 2025 · อ่าน 8 นาที
Next.js App Router: เข้าใจ Server Components และ Client Components
Next.js 13+ เปิดตัว App Router ที่เปลี่ยนวิธีคิดเรื่อง rendering อย่างสิ้นเชิง Server Components ทำงานบน server เท่านั้น ไม่ส่ง JavaScript ไปยัง browser ทำให้ bundle size เล็กลงและ performance ดีขึ้น ในขณะที่ Client Components ยังคงจำเป็นสำหรับ interactivity เช่น useState, useEffect, และ event handlers การใช้ directive "use client" ต้องวางไว้บนสุดของไฟล์เท่านั้น
Next.js React TypeScript SSR
Backend 5 มิถุนายน 2025 · อ่าน 6 นาที
NestJS Guards และ JWT Authentication แบบ Production-Ready
Guard ใน NestJS ทำหน้าที่คล้าย middleware แต่มี context ที่ชัดเจนกว่า การสร้าง AuthGuard ด้วย @Injectable() และ implement CanActivate ช่วยให้ตรวจสอบ JWT token ได้อย่างง่ายดาย ร่วมกับ JwtService จาก @nestjs/jwt การใช้ @UseGuards() decorator สามารถ apply ได้ทั้งระดับ controller และระดับ method
NestJS JWT Auth TypeScript
DevOps 28 พฤษภาคม 2025 · อ่าน 10 นาที
ตั้งค่า Jenkins Pipeline กับ GitLab Webhook อย่างละเอียด
การเชื่อม Jenkins กับ GitLab ผ่าน Webhook ช่วยให้ pipeline ทำงานอัตโนมัติ เมื่อมี push หรือ merge request เข้ามา ต้องตั้งค่า GitLab Connection ใน Jenkins Credentials ก่อน จากนั้นสร้าง Personal Access Token ใน GitLab แล้วเพิ่ม Webhook URL ในรูปแบบ http://<jenkins>/project/<job-name> พร้อม Secret Token เพื่อความปลอดภัย Jenkinsfile ควรใช้ declarative syntax และแบ่ง stage ให้ชัดเจน เช่น Build, Test, Deploy
Jenkins GitLab CI/CD DevOps
Security 20 พฤษภาคม 2025 · อ่าน 7 นาที
Linux Server Hardening: UFW, Fail2Ban และการจัดการ Firewall Rules
UFW (Uncomplicated Firewall) เป็น front-end ของ iptables ที่ใช้งานง่าย คำสั่งพื้นฐานเช่น ufw allow 22/tcp และ ufw deny from <IP> ช่วยควบคุม traffic ได้อย่างรวดเร็ว การใช้ Fail2Ban ร่วมกันจะ ban IP ที่พยายาม brute force โดยอัตโนมัติ สำหรับ VPS ที่มี log flooding จาก port scan ควรเพิ่ม rate limiting rule และ log ไปยัง file แยกต่างหาก เพื่อไม่ให้ syslog เต็มเกินไป
Linux UFW Fail2Ban Security
Networking 14 พฤษภาคม 2025 · อ่าน 9 นาที
ติดตั้ง WireGuard VPN บน Ubuntu พร้อม IP Routing แบบ Split Tunnel
WireGuard เป็น VPN protocol รุ่นใหม่ที่เร็วกว่า OpenVPN มาก การติดตั้งบน Ubuntu ทำได้ด้วย apt install wireguard จากนั้นสร้าง key pair ด้วย wg genkey และ wg pubkey การตั้งค่า split tunnel ช่วยให้ traffic บางส่วนผ่าน VPN และบางส่วน ใช้ interface ปกติ โดยกำหนด AllowedIPs ให้เฉพาะ subnet ที่ต้องการ แทนที่จะ route ทุก traffic ผ่าน VPN
WireGuard VPN Networking Ubuntu
Database 7 พฤษภาคม 2025 · อ่าน 5 นาที
Prisma ORM กับ SQLite: เหมาะสำหรับ Self-Hosted Tools ขนาดเล็ก
Prisma เป็น ORM ที่รองรับ TypeScript แบบ first-class มี type safety ตั้งแต่ schema จนถึง query Prisma Client auto-generate ให้อัตโนมัติเมื่อรัน prisma generate สำหรับ project ขนาดเล็กอย่าง self-hosted tool การใช้ SQLite เป็น database ช่วยลด overhead การ setup ได้มาก ไม่ต้องติดตั้ง database server แยก ไฟล์ .db เก็บข้อมูลทั้งหมดไว้ใน single file ทำ backup ง่ายมาก
Prisma SQLite TypeScript ORM
Infrastructure 1 พฤษภาคม 2025 · อ่าน 8 นาที
Nginx Reverse Proxy: รองรับ WebSocket และ Buffer Tuning สำหรับ Production
การตั้งค่า Nginx เป็น reverse proxy ต้องระวังเรื่อง WebSocket upgrade headers โดยต้องเพิ่ม proxy_http_version 1.1, proxy_set_header Upgrade $http_upgrade และ proxy_set_header Connection "upgrade" สำหรับ buffer tuning ค่า proxy_buffer_size และ proxy_buffers ควรปรับตาม response size ของ upstream service เพื่อป้องกัน 502 error ใน production
Nginx WebSocket Proxy Infrastructure