68 คะแนน โดย GN⁺ 2025-04-03 | 4 ความคิดเห็น | แชร์ทาง WhatsApp
  • Self-hosting กำลังได้รับความนิยมในช่วงหลังในฐานะทางเลือกของบริการแบบรวมศูนย์ที่เน้นการเก็บข้อมูล
  • หลังจากทดลองใช้เครื่องมือและแอปหลากหลายแบบ ผู้เขียนได้ใช้งานจริงอย่าง เสถียรมานานกว่า 1 ปี และขอแนะนำเครื่องมือที่เห็นว่ามีประโยชน์
    • รวมบทความแนะนำคอนเทนเนอร์รันไทม์ เครื่องมือจัดการผ่านเว็บ reverse proxy และ VPN รวมถึงเครื่องมือ self-hosting อื่น ๆ
  • บทความนี้ไม่ได้เขียนขึ้นเพื่อชี้ขาดว่าโซลูชันใดดีกว่าใคร แต่เน้นว่า ปัญหาที่ต่างกันย่อมมีวิธีแก้ที่ต่างกัน

คอนเทนเนอร์รันไทม์

  • ทุกวันนี้คอนเทนเนอร์กลายเป็นพื้นฐานของการโฮสต์ไปแล้ว และวิธีแบบดั้งเดิมก็ค่อย ๆ พบเห็นได้น้อยลง
  • นี่เป็นแนวโน้มที่ดีมากสำหรับ ผู้ใช้โฮมเซิร์ฟเวอร์ (homelabber) เพราะคอนเทนเนอร์ช่วยให้การกระจายซอฟต์แวร์ง่ายขึ้น และให้ประสิทธิภาพที่คุ้มค่ากว่า virtual machine
  • แม้คนส่วนใหญ่จะใช้ Docker แต่บทความนี้จะแนะนำ รันไทม์ทางเลือกหลายแบบที่ใช้ได้ในสภาพแวดล้อมภายในบ้าน
  • Docker

    • คอนเทนเนอร์รันไทม์ต้นตำรับที่ถูกใช้งานแพร่หลายที่สุด
    • ด้วย เอกสารที่ครบถ้วน และชุมชนขนาดใหญ่ แม้จะไม่เชี่ยวชาญ IT มากก็ยังสามารถคัดลอก docker-compose.yml จาก GitHub มาลองรันได้
    • อย่างไรก็ตาม การตั้งค่าด้านความปลอดภัยควรพิจารณาเพิ่มเติมแยกต่างหาก
  • Podman

    • คอนเทนเนอร์รันไทม์ยุคใหม่ที่ได้รับความสนใจจาก โครงสร้างแบบ rootless และความเข้ากันได้กับ Docker CLI
    • ทำงานได้โดยไม่ต้องมี daemon จึงเหมาะกับผู้ที่ให้ความสำคัญกับความปลอดภัยหรืออยากเรียนรู้เทคโนโลยีที่เกี่ยวข้อง
    • ใช้คำสั่ง Docker ส่วนใหญ่ได้โดยตรง และยังมี alias ที่เข้ากันได้กับคำสั่ง docker ทำให้ย้ายมาใช้งานได้ง่าย
    • แม้ว่า ช่วงแรกจะมีอุปสรรคในการเริ่มต้นอยู่บ้าง แต่เมื่อเอกสารและชุมชนพัฒนาขึ้น การเข้าถึงก็ง่ายขึ้นเรื่อย ๆ
    • นอกจากนี้ยังสามารถใช้ Podman Quadlets เพื่อจัดการคอนเทนเนอร์แบบประกาศค่าโดยอิง systemd แทน docker compose ได้ด้วย
  • Kubernetes

    • สำหรับผู้ใช้โฮมเซิร์ฟเวอร์สายช่างลองช่างสงสัย นี่คือ เครื่องมือขั้นสูงที่ชวนให้อยากท้าทายตัวเอง
    • เป็น เครื่องมือ orchestration ที่จัดการอินสแตนซ์จำนวนมากได้อย่างสวยงาม และมอบประสบการณ์การดูแลระบบระดับองค์กร
    • แต่เนื่องจาก มีฟีเจอร์จำนวนมากและซับซ้อนมาก จึงเกินความจำเป็นสำหรับผู้ใช้ส่วนใหญ่
    • ในสภาพแวดล้อมภายในบ้าน จุดประสงค์หลักมักเป็นการเรียนรู้ และเน้นความเข้าใจเทคโนโลยีมากกว่าการใช้งานจริง

เครื่องมือจัดการคอนเทนเนอร์ผ่านเว็บ

  • ผู้ใช้บางคนชอบเก็บไฟล์ compose ไว้รวมกันบนดิสก์ภายในเครื่องและจัดการด้วยตนเอง แต่ก็มีความยุ่งยากที่ต้อง เชื่อมต่อ SSH เข้าเซิร์ฟเวอร์ทุกครั้งเพื่อตรวจสอบ log
  • หากใช้ เครื่องมือจัดการคอนเทนเนอร์ผ่านเว็บ แทน ก็จะทำงานได้สะดวกกว่ามาก
  • Portainer

    • เครื่องมือจัดการผ่านเว็บ UI ที่เสถียรที่สุด และรองรับทั้ง Docker, Kubernetes และ Podman
    • ถูกใช้อย่างแพร่หลายตั้งแต่โฮมเซิร์ฟเวอร์ไปจนถึงสภาพแวดล้อมองค์กร และมีประโยชน์มากสำหรับการเรียนรู้จากการใช้งานจริง
    • มีทั้งเวอร์ชันโอเพนซอร์สคอมมูนิตี้และเวอร์ชัน enterprise ที่มีฟีเจอร์เพิ่ม (ให้สิทธิ์ใช้งานฟรี 3 ไลเซนส์)
    • ด้วย อินเทอร์เฟซที่เข้าใจง่ายและฟีเจอร์หลากหลาย จึงเหมาะมากสำหรับการจัดการคอนเทนเนอร์
  • Dockge

    • เครื่องมือจัดการ Docker Compose ผ่านเว็บรุ่นใหม่จากผู้พัฒนา Uptime Kuma
    • แม้ยังไม่สุกงอมเท่า Portainer แต่จุดเด่นคือ UI ที่เรียบง่ายและใช้งานได้ตรงไปตรงมา
    • ผู้พัฒนาตอบสนองต่อ GitHub issues ได้รวดเร็ว และมี การอัปเดตอย่างสม่ำเสมอ
    • เหมาะกับผู้ใช้ที่ชอบเครื่องมือเบา ๆ และมินิมอล

Reverse proxy และ VPN

  • หากต้องการเข้าถึงแอปพลิเคชันที่ self-host ไว้จากภายนอก มี 2 วิธีหลัก:
    • เปิดเผยบริการออกสู่อินเทอร์เน็ตโดยตรง
    • เข้าถึงเครือข่ายภายในผ่าน VPN
  • VPN ปลอดภัยกว่าในมุมของความมั่นคงปลอดภัย แต่การเปิดออกสู่อินเทอร์เน็ตก็ใช้งานได้ดีเพียงพอหากตั้งค่าอย่างถูกต้อง
  • Pangolin

    • โซลูชันนวัตกรรมที่รวม VPN และ reverse proxy เข้าไว้ด้วยกัน
    • ทำหน้าที่คล้าย Cloudflare สำหรับงาน self-hosting
    • เพียงติดตั้ง ingress server บน VPS หรือที่ใกล้เคียง ก็เชื่อมต่อด้วย VPN client จากสภาพแวดล้อมต่าง ๆ ได้อย่างสะดวก
    • มีทั้ง การเชื่อมต่อกับ CrowdSec และฟังก์ชัน SSO พื้นฐาน ในตัว
    • เป็นเครื่องมือที่น่าประทับใจมากจนกลายเป็นแรงบันดาลใจให้ผู้เขียนเขียนบทความนี้ และเมื่อเวลาผ่านไปก็มี โอกาสกลายเป็นทางเลือกมาตรฐานแทนโซลูชันเดิม
  • Nginx Proxy Manager (NPM)

    • ฟรอนต์เอนด์ของ Nginx ที่ให้ตั้งค่า TCP/UDP/HTTP(S) proxy ได้ง่ายผ่านเว็บ UI
    • แม้จะมีผู้ใช้งานจำนวนมาก แต่ผู้เขียนมองว่าฟีเจอร์บางอย่าง (เช่น password protection) ยังไม่เสถียร
    • แม้จะไม่ใช่เครื่องมือแรกที่สร้างความประทับใจที่ดีนัก แต่เมื่อทำงานได้ก็ทำหน้าที่ของมันได้อย่างครบถ้วน
  • Caddy

    • ใช้ ไฟล์ตั้งค่าที่เรียบง่าย (Caddyfile) เพื่อจัดการตั้งแต่การตั้งค่า proxy ไปจนถึงการออกใบรับรอง HTTPS แบบอัตโนมัติ
    • เนื่องจากไม่มีเว็บ UI จึงไม่ค่อยแนะนำสำหรับมือใหม่ แต่เป็นตัวเลือกยอดเยี่ยมสำหรับ ผู้ใช้ที่ชอบปรัชญาแบบ UNIX
    • รองรับ Let’s Encrypt โดยปริยาย และมีข้อดีตรงที่ไม่ต้องมีการตั้งค่าซับซ้อน
  • NetBird

    • เป็นโซลูชัน VPN ที่ถ้าคุ้นกับ Tailscale ก็จะปรับตัวได้ทันที
    • ตั้งค่าเครือข่ายบนพื้นฐาน WireGuard โดยอัตโนมัติ ช่วยลดความซับซ้อนของการตั้งค่า
    • ใช้ได้ทั้งบน cloud free tier หรือ self-host เอง จึงมีความยืดหยุ่น

เครื่องมือติดตามสถานะและแจ้งเตือน

  • Uptime Kuma

    • ติดตามสถานะบริการได้ง่ายโดยไม่ต้องใช้สแตกหนัก ๆ อย่าง Zabbix หรือ Grafana
    • ตั้งค่าการแจ้งเตือนผ่านหลายช่องทางได้ด้วยการ deploy เพียงครั้งเดียว
    • เหมาะอย่างยิ่งสำหรับตรวจสอบความพร้อมใช้งานของระบบ self-hosting
  • Gotify

    • เซิร์ฟเวอร์แจ้งเตือนที่ส่ง push notification ได้ด้วย HTTP request แบบง่าย ๆ
    • เมื่อติดตั้งแอปบนมือถือแล้วก็รับการแจ้งเตือนได้ และยัง ผสานการทำงานกับ Uptime Kuma เป็นต้น ได้ด้วย
    • ใช้งานร่วมกับเครื่องมือ self-hosting หลากหลายตัวได้ จึงมีความเป็นประโยชน์ในทางปฏิบัติ

แหล่งข้อมูลเพิ่มเติมสำหรับค้นหาแอป self-hosting

  • นี่คือชุดแหล่งข้อมูลที่มีประโยชน์สำหรับค้นหาแอปพลิเคชัน self-hosting หลากหลายแบบ
  • Awesome-Selfhosted

    • รายชื่อซอฟต์แวร์ขนาดใหญ่บน GitHub
    • การจัดระเบียบอาจยังไม่ดีนัก และมีบางโปรเจกต์ที่หยุดพัฒนาไปแล้วรวมอยู่ด้วย
  • Selfh.st

    • เป็นแหล่งข้อมูลที่ผู้เขียนชอบมากที่สุด
    • มีทั้งจดหมายข่าวแนะนำแอปเฉพาะทาง และ ไดเรกทอรีแอปขนาดใหญ่ที่มีฟังก์ชันจัดเรียง
    • เป็นเว็บไซต์ที่มีประโยชน์มาก
  • awesome-docker-compose

    • รวมไฟล์ Docker Compose ที่พร้อมใช้งานได้ทันที
    • แม้บางแอปอาจมีปัญหาความเข้ากันได้จากการอัปเดต แต่โดยรวมแล้วเป็นแหล่งอ้างอิงที่ดี

4 ความคิดเห็น

 
ifmkl 2025-04-04

ผมซื้อ n100 มาหนึ่งตัวตอนช่วงลดราคาของ Ali ที่ผ่านมา ติดตั้ง Proxmox แล้วก็สำรองข้อมูลทั้งหมดจากเซิร์ฟเวอร์ Oracle ARM ที่ใช้อยู่เดิมเอาไว้ก่อนแล้วครับ นอกจากนี้ยังติดตั้ง Xpenology กับ pfSense ไว้ด้วย ตอนนี้ยังไม่ได้เอามาใช้งานจริงจัง แต่กะว่าจะย้ายมาใช้เป็นเครื่องหลักในเร็ว ๆ นี้

 
bus710 2025-04-04

ปลายปีที่แล้วผมสมัครสมาชิกบริการ VPN ตอนที่มีโปรลดราคาไว้ เพราะเริ่มเห็นเค้าลางว่าบริการรายใหญ่หลายเจ้าจะมีการเปลี่ยนแปลงหลายอย่าง เลยตั้งใจว่าจะค่อย ๆ ย้ายมาโฮสต์เอง ตอนนี้ก็คงต้องค่อย ๆ ทดสอบไปก่อนด้วยการย้ายรหัสผ่านกับบุ๊กมาร์กของเบราว์เซอร์มาทีละนิด

 
wedding 2025-04-04

Docker + Portainer + Cloudflare + Uptime Kuma
ตอนนี้ผมก็ใช้อยู่แบบนี้ครับ

 
GN⁺ 2025-04-03
ความเห็นจาก Hacker News
  • ชอบแนวคิดการโฮสต์เอง กำลังดูแลเว็บไซต์ขนาดเล็กและโปรเจ็กต์หลายตัวอยู่ จึงไม่ได้มีปัญหาเรื่องทรัพยากรมากนัก

    • ปัญหาคือเรื่องความปลอดภัย ไม่ค่อยรู้วิธีรันไซต์ที่โฮสต์เองจากที่บ้านให้ปลอดภัย
    • ยังคงเรียนรู้อยู่เรื่อย ๆ แต่ยิ่งเรียนก็ยิ่งมีคำถามมากขึ้น กังวลว่าถ้าพูดอะไรผิดไปจะมีใครบุกเข้ามาในเครือข่ายของฉันไหม
    • ความกังวลแบบนี้ทำให้หันไปใช้บริการอย่าง Akamai, Linode, DO
    • กำลังมองหาแหล่งข้อมูลเกี่ยวกับความปลอดภัยของการโฮสต์เอง
  • กำลังตั้งค่า VPS ตัวใหม่

    • ใช้ RHEL 9 Developer Subscription ติดตั้ง dnf-automatic และตั้งค่า reboot = when-changed เพื่อให้อัปเดตอัตโนมัติ
    • ใช้ podman และ quadlets สำหรับบริการต่าง ๆ ใช้แทน docker-compose อยู่
    • วางแผนจะรัน nginx, vaultwarden, postfix, เว็บเมล เป็นต้น
    • มีการสิ้นเปลืองพื้นที่ดิสก์มากจากข้อมูลอิมเมจ
  • กังวลกับการเพิ่มขึ้นของการโฮสต์เอง

    • ผู้ใช้ที่โฮสต์เองจะค่อย ๆ ได้รับความสนใจมากขึ้น
    • บทความเกี่ยวกับวิธีเช่า VPS ในจีนก็น่าจะน่าสนใจ
  • วางแผนจะใช้ dokku ต่อไปสำหรับโฮสต์เว็บแอป

  • กำลังจัดการ Hashicorp Nomad, Consul และ Traefik ด้วย OpenTofu

    • Docker แบบสแตนด์อโลนทำงานได้ไม่ดีนัก ถ้าจะเปลี่ยนคุณสมบัติของคอนเทนเนอร์ก็ต้องสร้างใหม่
    • Quadlet ทำให้การจัดการคลัสเตอร์ของบริการทำได้ยาก ความแตกต่างเล็ก ๆ น้อย ๆ ของ Podman ทำให้เกิดปัญหา
    • Kubernetes หนักเกินไป ดิสโทรแบบเบาก็ยังหนักอยู่ดี
    • ด้วยการตั้งค่าปัจจุบัน สามารถให้บริการ HTTPS ได้อย่างง่ายดาย
  • เคยลองใช้ Portainer แต่พบว่า docker compose ง่ายกว่า

    • ถ้าจะไปโหมด rootless ก็แนะนำ Podman ส่วน Docker เองก็รันแบบ rootless ได้เช่นกัน
    • Docker rootless เสถียรบน Debian และ Ubuntu
    • ไม่จำเป็นต้องใช้ Watchtower ตั้งค่า docker compose pull อัตโนมัติผ่าน crontab ได้
  • หากจะโฮสต์เอง แนะนำว่าอย่าใช้คอนเทนเนอร์และให้ใช้ static site generator แทน

    • ถ้าต้องการฟังก์ชันแบบไดนามิกก็ใช้ PHP ได้ และเสริมความปลอดภัยด้วยการตั้งค่า nginx
    • ข้อมูลสำคัญแนะนำให้ใช้ zfs dataset สำหรับการสำรองข้อมูล
  • กำลังโฮสต์เองด้วย FreeBSD jails และเชลล์สคริปต์

    • ยอมแลกความสะดวก แต่ยังคงอินเทอร์เฟซที่เสถียรไว้ได้
  • บทความนี้เป็นแรงกระตุ้นให้ปรับวิธีโฮสต์ของตัวเองให้ดีขึ้น

    • ก่อนหน้านี้รันโปรเจ็กต์ส่วนตัวบน DigitalOcean VPS
    • เปลี่ยนมาใช้ Portainer + Caddy เพื่อจัดการคอนเทนเนอร์และทำระบบอัตโนมัติสำหรับใบรับรอง SSL
    • ขอบคุณที่พาฉันเข้าสู่ปี 2025