SSD Nodes Learn Hosting plans →
คู่มือ Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-08-28

25 แอปพลิเคชันน่ารันบน Self-hosted VPS ปี 2026

รวม 25 แอปพลิเคชัน Self-hosted ที่น่าใช้งานในปี 2026 แบ่งตามหมวดหมู่การทำงาน พร้อมข้อมูลการใช้ RAM และพื้นที่ดิสก์จริง รวมถึงข้อควรระวังสำคัญสำหรับผู้ดูแลระบบเซิร์ฟเวอร์

สิ่งที่คุณกำลังสร้าง

ไม่ใช่แอปพลิเคชันเดียว แต่เป็นรายการคัดสรร นี่คือศูนย์กลางสำหรับทุกสิ่งบนเว็บไซต์นี้ โดยรวบรวมแอปพลิเคชัน 25 รายการที่คุ้มค่าแก่การรันบน VPS ของคุณเองในปี 2026 โดยแบ่งกลุ่มตามหน้าที่การทำงาน สำหรับแต่ละรายการ คุณจะได้รับข้อมูลว่ามันเข้ามาแทนที่บริการใด ตัวเลขการใช้ RAM และ Disk ที่เป็นจริง และสิ่งสำคัญเพียงหนึ่งเดียวที่จะสร้างปัญหาให้คุณหากมองข้ามไป ลิงก์ต่างๆ จะนำไปสู่คู่มือขั้นตอนการติดตั้งฉบับสมบูรณ์ในกรณีที่มีการจัดทำไว้

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

ข้อกำหนดเบื้องต้นและความเป็นจริงที่ต้องทราบ

แอปพลิเคชันทั้งหมดในที่นี้ทำงานบน Ubuntu 24.04 KVM VPS ที่ติดตั้งใหม่โดยใช้สิทธิ์ root หรือ sudo รายการเดียวกันนี้สามารถใช้งานบนเครื่องเซิร์ฟเวอร์ส่วนตัวของคุณได้เช่นกัน หากคุณกำลังเปรียบเทียบค่าเช่ารายเดือนกับการซื้อ RAM ครั้งเดียว การใช้ Proxmox ที่บ้านเทียบกับการเช่า VPS จะช่วยให้คุณคำนวณความคุ้มค่าด้านฮาร์ดแวร์และพลังงานได้ แอปส่วนใหญ่มาในรูปแบบ Docker container ดังนั้นให้ติดตั้ง Docker เพียงครั้งเดียว คุณก็พร้อมสำหรับรายการทั้งหมดนี้:

curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker "$USER"
newgrp docker
docker run --rm hello-world

หากคำสั่ง docker ล้มเหลวด้วย permission denied while trying to connect to the Docker daemon socket แสดงว่าคุณข้ามขั้นตอนการเพิ่มกลุ่มผู้ใช้หรือยังไม่ได้เปิด shell ใหม่ ให้ทำการ log out แล้ว log in เข้ามาใหม่ หาก docker compose แสดงผลเป็น docker: 'compose' is not a docker command แสดงว่าคุณกำลังใช้ binary แบบ standalone รุ่นเก่า สคริปต์ด้านบนจะติดตั้ง Compose plugin รุ่นใหม่ ซึ่งคุณต้องเรียกใช้งานด้วย docker compose (ใช้ช่องว่างแทนเครื่องหมายขีดกลาง)

ความเป็นจริงสามประการที่กำหนดรูปแบบของเนื้อหาทั้งหมดด้านล่างนี้ ประการแรก RAM คือข้อจำกัด ไม่ใช่ disk หรือ CPU VPS ขนาด 1 GB สามารถรันแอปขนาดเล็กได้เพียงแอปเดียวเท่านั้น ขนาด 4 GB คือจุดที่เหมาะสมที่สุดสำหรับเซิร์ฟเวอร์ที่ใช้ "self-host บริการจำนวนหนึ่ง" ส่วนขนาด 2 GB เป็นจุดที่น่าอึดอัดซึ่งผู้เริ่มต้นมักจะพยายามรันบริการที่สาม จนทำให้เกิดภาวะ Out-Of-Memory แบบเงียบๆ และไม่ทราบสาเหตุว่าทำไม container ถึงหายไป โดย sudo dmesg จะแสดงบรรทัด Out of memory: Killed process ที่ daemon กลืนหายไป ประการที่สอง บริการใดก็ตามที่เปิดสู่สาธารณะจำเป็นต้องมีชื่อโดเมนและใบรับรอง การใช้ IP เปล่าๆ สามารถทำได้เพียงการทดสอบเท่านั้น และจะใช้งานไม่ได้ทันทีที่คุณต้องการให้แอปบนมือถือหรือเบราว์เซอร์เชื่อถือบริการนั้น ประการที่สาม พอร์ตสองพอร์ตเป็นตัวกำหนดทางเลือกของคุณ: พอร์ต 80 และ 443 จะต้องเข้าถึงเซิร์ฟเวอร์ได้เพื่อให้ระบบ TLS ทำงานอัตโนมัติ และผู้ให้บริการส่วนใหญ่จะบล็อกพอร์ต 25 ขาออก ซึ่งเป็นเหตุผลว่าทำไมอีเมลจึงอยู่ในรายการ "สิ่งที่ไม่ควรทำ" ในตอนท้าย

Files and photos

  • Nextcloud replaces Google Drive, Dropbox, and Google Calendar in one suite. Budget 1–2 GB RAM plus whatever your files weigh. The one gotcha: SQLite is fine for a demo and a trap in production, install it on PostgreSQL from the first boot, because migrating the database after your data is in there is the most common way people wreck a Nextcloud. The full Nextcloud on a VPS with Docker, TLS and backups guide sets it up correctly the first time.
  • Immich replaces Google Photos, right down to the phone app that auto-uploads your camera roll and the face and object search. Budget 6 GB of RAM, Immich's docs call that the minimum, 8 GB is comfortable, and the machine-learning container is the hungry part, and disk equal to your library plus roughly twenty percent for thumbnails. The gotcha: Immich still ships breaking changes between releases, so never blindly pull latest; pin a version and read the release notes before every upgrade. The self-hosted Immich photo library guide covers the safe upgrade path. If that 6 GB floor is more than your box has, PhotoPrism and Immich side by side compares the two on real memory use, phone apps, and the backup commands each one needs before you commit a library to either.
  • Seafile replaces Dropbox with the fastest sync engine of the three. Budget around 1 GB RAM. The gotcha: Seafile stores your files as content-addressed blocks, not as plain files on disk, so you cannot browse the data with ls and you must back up through Seafile's own tools, not by copying a folder.

รหัสผ่าน

  • Vaultwarden เป็นเซิร์ฟเวอร์ภาษา Rust ขนาดเล็กที่ใช้โปรโตคอลเดียวกับ Bitwarden จึงสามารถใช้งานร่วมกับแอปและส่วนขยายเบราว์เซอร์อย่างเป็นทางการของ Bitwarden ได้ทั้งหมด โดยเข้ามาแทนที่บริการอย่าง Bitwarden รุ่นเสียค่าบริการ, LastPass และ 1Password ได้อย่างสมบูรณ์ ใช้ทรัพยากรเพียง RAM 100–200 MB และพื้นที่ดิสก์เพียงเล็กน้อย ข้อควรระวังคือเซิร์ฟเวอร์นี้เก็บรหัสผ่านทั้งหมดของคุณไว้ ดังนั้นการทำ TLS และการสำรองข้อมูลจึงไม่ใช่ทางเลือก แต่เป็นหัวใจสำคัญของระบบ และต้องตั้งค่า ADMIN_TOKEN ให้เป็น Argon2 hash เพราะการเก็บ token แบบข้อความธรรมดาไว้ในไฟล์ compose จะเท่ากับการทิ้งกุญแจหลักไว้ในรูปแบบที่ใครก็อ่านได้ คู่มือ การจัดการรหัสผ่านด้วย Vaultwarden เป็นจุดเริ่มต้นที่ดีที่สุดสำหรับการทำ self-host

สื่อบันเทิง

  • Jellyfin ใช้แทน Plex และ Netflix สำหรับคลังสื่อส่วนตัวของคุณ เป็นซอฟต์แวร์โอเพนซอร์สเต็มรูปแบบ ไม่ต้องมีบัญชี และไม่มีการจำกัดการสตรีมระยะไกลด้วยระบบจ่ายเงิน ใช้ RAM ประมาณ 1–2 GB ในสถานะ idle แต่ CPU จะทำงานหนักมากเมื่อมีการ transcode ข้อควรระวังคือการทำ software transcoding สำหรับสตรีม 4K จะทำให้ VPS ขนาดเล็กทำงานไม่ไหว คุณควรจัดเตรียม hardware acceleration ให้กับเซิร์ฟเวอร์ หรือเก็บไฟล์ในรูปแบบที่ไคลเอนต์เล่นได้โดยตรง (Direct Play) เพื่อให้เซิร์ฟเวอร์ทำหน้าที่เพียงแค่ส่งข้อมูลเท่านั้น คู่มือ การติดตั้ง Jellyfin media server บน VPS จะอธิบายความแตกต่างของทั้งสองวิธี เมื่อติดตั้งเสร็จแล้ว Halcyon จะเปลี่ยนคลังสื่อนั้นให้กลายเป็นร้านเช่าวิดีโอยุค 90 ที่เดินเลือกได้ บนเบราว์เซอร์ ซึ่งเป็นวิธีที่แปลกใหม่และได้ผลที่สุดในการทำให้คนในบ้านหันมาเลือกดูสื่อจากชั้นวางแทนการเลื่อนผ่านทุกอย่างไปเรื่อยๆ
  • Navidrome ใช้แทน Spotify สำหรับคลังเพลงส่วนตัวของคุณ โดยสตรีมไปยังแอปใดก็ได้ที่รองรับโปรโตคอล Subsonic ใช้ RAM ประมาณ 150–300 MB เนื่องจากเขียนด้วยภาษา Go จึงกินทรัพยากรน้อยมาก ข้อควรระวังคือการสแกนคลังเพลงครั้งแรกจะอ่านแท็กจากทุกไฟล์ ซึ่งอาจใช้เวลาเป็นชั่วโมงหากมีคลังเพลงขนาดใหญ่ และหากแท็ก ID3 ไม่ถูกต้อง ประสบการณ์การใช้งานก็จะแย่ตามไปด้วย
  • Audiobookshelf ใช้แทน Audible และแอปพอดแคสต์ของคุณ โดยสามารถซิงค์ตำแหน่งการเล่นข้ามอุปกรณ์ได้ ใช้ RAM ประมาณ 200–500 MB ข้อควรระวังคือระบบต้องการโครงสร้างโฟลเดอร์แบบหนึ่งโฟลเดอร์ต่อหนึ่งหนังสือ หากนำเข้าไฟล์จากโฟลเดอร์ที่จัดระเบียบไม่ดี จะทำให้คลังสื่อแสดงผลผิดพลาดและตรวจพบไฟล์ไม่ครบ ซึ่งแก้ไขได้ยากในภายหลัง

ระบบอัตโนมัติและ AI

  • n8n ใช้แทน Zapier และ Make ด้วยเครื่องมือสร้างเวิร์กโฟลว์แบบภาพที่คุณเป็นเจ้าของเอง และไม่มีการคิดค่าบริการรายรายการ (per-task) จัดสรร RAM ไว้ที่ 400 MB–1 GB ข้อควรระวังคือ n8n จะเข้ารหัสข้อมูลรับรอง (credentials) ที่จัดเก็บไว้ด้วยคีย์ที่สร้างขึ้นในการรันครั้งแรก หากคุณทำคีย์นั้นหายหรือลืมตั้งค่า N8N_ENCRYPTION_KEY แล้วปล่อยให้ระบบสร้างคีย์ใหม่ ข้อมูลรับรองที่บันทึกไว้ทั้งหมดจะอ่านไม่ได้และคุณต้องกรอกข้อมูลใหม่ทั้งหมด คู่มือ การติดตั้ง n8n บนเซิร์ฟเวอร์ตนเองพร้อม HTTPS จะแนะนำการตรึงคีย์ (pinning) และการติดตั้งใบรับรองจริงไว้หน้า URL ของ webhook
  • Ollama ใช้แทนการสมัครสมาชิก ChatGPT สำหรับการประมวลผล LLM แบบส่วนตัวภายในเครื่อง จัดสรรทรัพยากรตามโมเดลที่ใช้: โมเดลขนาด 7–8B ต้องการ RAM ประมาณ 8 GB และแต่ละโมเดลใช้พื้นที่ดิสก์ 4–8 GB ข้อควรระวังคือบน VPS ที่ใช้เฉพาะ CPU การประมวลผลจะทำงานได้จริงแต่ช้า โดยจะนับเป็นคำต่อวินาที ไม่ใช่การตอบโต้ทันทีเหมือน API ที่โฮสต์ไว้ ดังนั้นควรปรับความคาดหวังหรือเช่าเซิร์ฟเวอร์ที่มี GPU คู่มือ การรัน Ollama เพื่อโฮสต์ LLM ด้วยตนเอง มีตัวเลขการใช้งานที่สมจริงให้ศึกษา

การสื่อสาร

  • Rocket.Chat ใช้ทดแทน Slack สำหรับทีมงาน โดยรองรับการสนทนาแบบเธรด, การโทร และการเชื่อมต่อกับบริการภายนอก ควรจัดสรร RAM ไว้ที่ 2 GB ขึ้นไป เนื่องจากต้องรันบน MongoDB ซึ่งเป็นส่วนที่ใช้ทรัพยากรสูง ข้อควรระวังคือ Rocket.Chat จะกำหนดเวอร์ชันหลักของ MongoDB ที่เจาะจงไว้ในแต่ละรีลีส การข้ามเวอร์ชันระหว่างการอัปเกรดจะทำให้ฐานข้อมูลของคุณเสียหาย ดังนั้นควรทยอยอัปเกรดทีละขั้น คู่มือ Rocket.Chat ด้วย Docker Compose จะอธิบายขั้นตอนการไล่ระดับเวอร์ชันไว้
  • Matrix (Synapse) ใช้ทดแทน Slack และ Discord โดยเป็นเครือข่ายแบบกระจายศูนย์ที่รองรับการเข้ารหัสแบบ end-to-end ซึ่งคุณสามารถเป็นเจ้าของ homeserver ของตนเองได้ ควรจัดสรร RAM ไว้ที่ 1–2 GB และจะเพิ่มขึ้นตามจำนวนห้องสาธารณะขนาดใหญ่ที่คุณเข้าร่วม ข้อควรระวังคือการใช้หน่วยความจำของ Synapse จะพุ่งสูงขึ้นเมื่ออยู่ในห้องที่มีการเชื่อมต่อแบบ federated ขนาดใหญ่ และจำเป็นต้องรันบน PostgreSQL เท่านั้น ส่วน SQLite ที่เป็นค่าเริ่มต้นจะใช้ได้สำหรับการทดสอบผู้ใช้คนเดียวเท่านั้น และจะล่มทันทีเมื่อมีการเชื่อมต่อแบบ federated หากรู้สึกว่า Synapse ใช้ทรัพยากรมากเกินไป คุณสามารถเลือกใช้เซิร์ฟเวอร์อย่าง Conduit หรือ Dendrite ซึ่งเบากว่าแต่ใช้โปรโตคอลเดียวกันได้

การเชื่อมต่อเครือข่ายและการเข้าถึง

  • WireGuard ใช้แทน VPN เชิงพาณิชย์ โดยสร้างอุโมงค์ส่วนตัวไปยัง IP ของคุณและบริการอื่นๆ ของคุณ ใช้ทรัพยากรน้อยมาก ไม่ถึง 50 MB และการเข้ารหัสทำงานในระดับ kernel ข้อควรระวัง: บนระบบ virtualization แบบ container (OpenVZ, LXC บางตัว) โมดูลจะทำงานล้มเหลวด้วย RTNETLINK answers: Operation not supported ดังนั้นคุณควรใช้ KVM คู่มือ การทำ self-hosted WireGuard VPN คือแหล่งอ้างอิงหลัก และการจับคู่กับบริการที่ผูกไว้กับอุโมงค์นี้คือวิธีที่คุณจะแยกบริการต่างๆ ออกจากอินเทอร์เน็ตสาธารณะโดยสิ้นเชิง หากคุณไม่ต้องการแก้ไขไฟล์ config ของ peer สำหรับอุปกรณ์ใหม่ทุกครั้ง การรัน Tailscale subnet router บน VPS จะช่วยประกาศช่วง IP ส่วนตัวทั้งหมดไปยังเครื่องอื่นๆ ของคุณแทน เมื่อคุณอนุมัติเส้นทางและตั้งค่าให้ IP forwarding ทำงานได้หลังการรีบูต
  • Traefik ใช้แทนการเขียน virtual host ของ nginx ด้วยตนเองและการต่ออายุใบรับรองแบบ manual โดยจะค้นหา container ของคุณผ่าน Docker labels และดึงใบรับรองจาก Let's Encrypt โดยอัตโนมัติ ใช้ RAM ประมาณ 100 MB ข้อควรระวัง: รูปแบบการตั้งค่าผ่าน label อาจสร้างความสับสนในช่วงแรก และหากใส่ label ผิดเพียงจุดเดียว แอปจะไม่ถูกกำหนดเส้นทางโดยไม่มีข้อความแจ้งเตือนที่ชัดเจน คู่มือ Traefik reverse proxy สำหรับแอป Docker หลายตัว ถูกสร้างขึ้นมาเพื่อการรันแอปหลายตัวในหน้านี้ไว้หลังจุดเชื่อมต่อเดียวโดยเฉพาะ
  • AdGuard Home ใช้แทน Pi-hole และบริการกรอง DNS แบบเสียเงิน โดยบล็อกโฆษณาและตัวติดตามสำหรับทุกอุปกรณ์ในเครือข่ายของคุณที่ระดับ DNS ใช้ RAM ประมาณ 100–150 MB ข้อควรระวัง: โปรแกรมต้องการใช้งานพอร์ต 53 ซึ่งจะชนกับ systemd-resolved บน Ubuntu ทำให้เริ่มทำงานไม่ได้ด้วย listen udp 0.0.0.0:53: bind: address already in use จนกว่าคุณจะปลดล็อกพอร์ตนั้นก่อน

การตรวจสอบระบบ (Monitoring)

  • Uptime Kuma ใช้แทน Pingdom, UptimeRobot และ StatusPage ได้ โดยมีแดชบอร์ดที่สะอาดตาและระบบแจ้งเตือนไปยังช่องทางต่างๆ เกือบทุกรูปแบบ ใช้ RAM ประมาณ 150–300 MB ข้อควรระวังที่คนมักมองข้ามคือ คุณควรตรวจสอบเซิร์ฟเวอร์ production จากเซิร์ฟเวอร์ คนละเครื่องกัน เพราะหาก Uptime Kuma ทำงานอยู่บนเซิร์ฟเวอร์เดียวกับที่มันคอยตรวจสอบ มันจะไม่สามารถแจ้งเตือนคุณได้เมื่อเซิร์ฟเวอร์นั้นล่ม คู่มือ การตรวจสอบสถานะด้วย Uptime Kuma ได้อธิบายถึงการติดตั้งไว้บนเครื่องภายนอก
  • Zabbix ใช้แทน Datadog และชุดซอฟต์แวร์ตรวจสอบระดับองค์กร โดยให้ข้อมูลเชิงลึกผ่าน agent, ระบบทริกเกอร์ และประวัติการทำงาน ใช้ RAM ตั้งแต่ 2 GB ขึ้นไปและต้องมีฐานข้อมูลของตัวเอง ข้อควรระวังคือ Zabbix มีประสิทธิภาพสูงและติดตั้งค่อนข้างซับซ้อน จึงถือว่าเกินความจำเป็นหากคุณมีเพียงแค่ 3 คอนเทนเนอร์ แต่จะเป็นเครื่องมือที่เหมาะสมเมื่อคุณมีโครงสร้างพื้นฐานขนาดใหญ่ ให้เริ่มจาก Uptime Kuma ก่อน แล้วค่อยขยับขยายไปใช้ เซิร์ฟเวอร์ตรวจสอบ Zabbix เมื่อคุณมีโครงสร้างพื้นฐานที่ต้องดูแลจริงจัง

Prometheus และ Grafana ถูกตัดออกจากรายการนี้โดยตั้งใจ เนื่องจากแม้จะเป็นเครื่องมือระดับกลุ่มเซิร์ฟเวอร์ที่ยอดเยี่ยม แต่การติดตั้งและปรับแต่งนั้นกินทรัพยากรเกินความจำเป็นสำหรับระบบส่วนตัวที่มีเพียง 2 หรือ 3 เครื่อง ในขณะที่ Uptime Kuma และ Zabbix สามารถตอบโจทย์เดียวกันได้ในสเกลนี้โดยมีภาระในการดูแลรักษาน้อยกว่า

แดชบอร์ดและแผงควบคุม

เครื่องมือเหล่านี้เปลี่ยนรูปแบบการทำงานทั้งหมด แทนที่จะต้องรันไฟล์ compose ด้วยตนเอง แผงควบคุมจะจัดการแอปพลิเคชันให้คุณ

  • Cloudron ตอบโจทย์ความต้องการแบบ "คลิกเดียวติดตั้ง" ด้วย App Store ที่ใช้งานง่าย, การจัดการ TLS อัตโนมัติ และระบบสำรองข้อมูลในตัว ควรเตรียม RAM อย่างน้อย 2 GB และจะทำงานได้ราบรื่นที่ 4 GB ข้อควรระวังคือ Cloudron มีรูปแบบการจัดการเฉพาะตัวและต้องการควบคุมเซิร์ฟเวอร์ทั้งหมด อีกทั้งยังเปิดให้ใช้งานฟรีได้สูงสุดเพียง 2 แอปเท่านั้น หากมากกว่านั้นจะเป็นผลิตภัณฑ์แบบเสียค่าใช้จ่าย
  • CasaOS เปลี่ยนแดชบอร์ด homelab ที่ยุ่งเหยิงให้เป็นตารางแอปที่ใช้งานง่าย มีน้ำหนักเบาและใช้งานได้ฟรี ควรเตรียม RAM ประมาณ 150 ถึง 300 MB สำหรับตัว CasaOS เอง ข้อควรระวังคือเครื่องมือนี้ถูกออกแบบมาสำหรับเครือข่ายภายในบ้านที่เชื่อถือได้และไม่ได้ถูกปรับแต่งความปลอดภัยสำหรับการใช้งานบนอินเทอร์เน็ตสาธารณะ ห้ามเปิดเผยพอร์ตสู่สาธารณะโดยตรง ควรเข้าถึงผ่าน WireGuard เท่านั้น
  • Coolify ทำหน้าที่แทน Heroku, Vercel และ Netlify โดยรองรับการ deploy ผ่าน git-push, การจัดการฐานข้อมูล และการดูตัวอย่างแอปบนเซิร์ฟเวอร์ของคุณเอง ควรเตรียม RAM อย่างน้อย 2 GB ข้อควรระวังคือโปรเจกต์นี้ยังค่อนข้างใหม่และมีการพัฒนาอย่างรวดเร็ว ดังนั้นควรล็อกเวอร์ชันและอ่านบันทึกการเปลี่ยนแปลง (release notes) ก่อนทำการอัปเกรด คุณสามารถดู การเปรียบเทียบระหว่าง Cloudron, CasaOS และ Coolify เพื่อตัดสินใจว่าเครื่องมือใดเหมาะสมกับความต้องการของคุณมากที่สุด

เครื่องมือสำหรับนักพัฒนาและเพิ่มประสิทธิภาพการทำงาน

  • Gitea (หรือ Forgejo) ใช้แทน GitHub สำหรับเก็บ repository ส่วนตัว, จัดการ issues และทำ CI โดยใช้ RAM ประมาณ 200–500 MB ข้อควรระวัง: Forgejo เป็น fork ของ Gitea ที่บริหารจัดการโดยชุมชนและเป็นที่แนะนำในปัจจุบัน ทั้งสองตัวมีประสิทธิภาพดีเยี่ยม แต่ให้เลือกใช้เพียงตัวเดียวและสำรองข้อมูลทั้ง repository และ ฐานข้อมูลไปพร้อมกัน การสำรองข้อมูลเฉพาะ repository โดยไม่มีฐานข้อมูลจะทำให้ข้อมูล issues และ pull requests ทั้งหมดสูญหาย
  • Paperless-ngx ใช้แทนตู้เก็บเอกสารและเครื่องสแกนเอกสารราคาแพง โดยมีระบบ OCR ทำให้เอกสารของคุณสามารถค้นหาได้ ใช้ RAM ประมาณ 1 GB และมีการใช้ CPU สูงขณะทำ OCR ข้อควรระวัง: ผลลัพธ์ของ OCR ขึ้นอยู่กับคุณภาพการสแกนของคุณ และการประมวลผลเอกสารจำนวนมากใช้เวลานาน ควรปรับแต่งค่าให้เหมาะสมก่อนนำเข้าเอกสารย้อนหลังหลายปีในคราวเดียว
  • Actual Budget ใช้แทน YNAB และ Mint สำหรับการทำงบประมาณแบบซองจดหมายที่รวดเร็ว เป็นส่วนตัว และทำงานในเครื่อง ใช้ RAM ประมาณ 150 MB ข้อควรระวัง: ระบบซิงค์ธนาคารอัตโนมัติเป็นส่วนเสริมแยกต่างหากที่ต้องตั้งค่าเพิ่ม ดังนั้นในการใช้งานเริ่มต้น คุณต้องนำเข้าธุรกรรมด้วยตนเอง
  • FreshRSS ใช้แทน Feedly และ Google Reader ที่ปิดตัวไปแล้ว เป็นโปรแกรมอ่านฟีดที่รวดเร็ว เป็นส่วนตัว และมีแอปบนมือถือ ใช้ RAM ประมาณ 150 MB ข้อควรระวัง: ต้องตั้งค่าการรีเฟรชฟีดผ่าน cron มิฉะนั้นฟีดจะอัปเดตเฉพาะเมื่อคุณเปิดหน้าเว็บเท่านั้น
  • BookStack ใช้แทน Notion และ Confluence สำหรับทำเอกสาร โดยจัดระเบียบเป็นชั้นวาง หนังสือ และหน้ากระดาษ ใช้ RAM ประมาณ 500 MB บน PHP และ MySQL ข้อควรระวัง: มีโครงสร้างเนื้อหาเฉพาะตัวแทนที่จะเป็นโน้ตแบบอิสระ ซึ่งบางคนอาจชอบแต่บางคนอาจรู้สึกว่าไม่ยืดหยุ่น ควรทดลองใช้งานก่อนตัดสินใจย้ายฐานความรู้ทั้งหมดของคุณไปไว้ที่นั่น
  • Home Assistant ใช้แทน SmartThings และแอปจากผู้ผลิตหลายราย เพื่อรวมศูนย์อุปกรณ์สมาร์ทโฮมไว้ในที่เดียวภายในเครือข่าย ใช้ RAM ประมาณ 1 GB ข้อควรระวัง: ความสามารถส่วนใหญ่ต้องการการเข้าถึงอุปกรณ์ในเครือข่ายท้องถิ่น ดังนั้นจึงเหมาะกับการรันบนฮาร์ดแวร์ที่บ้านมากกว่าบน VPS ระยะไกล หากจำเป็นต้องใช้งานจากภายนอก ให้รัน dashboard ผ่านการเชื่อมต่อที่ปลอดภัยแทน

การติดตั้งตัวอย่าง

เพื่อให้เห็นภาพชัดเจน นี่คือโครงสร้างทั้งหมดของการทำ self-host ซึ่งประกอบด้วยไฟล์ compose, ใบรับรองจริง และการสำรองข้อมูล ตัวอย่างนี้ใช้ Uptime Kuma แต่แอปพลิเคชันทุกตัวในรายการล้วนใช้รูปแบบเดียวกัน

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    container_name: uptime-kuma
    volumes:
      - ./data:/app/data
    ports:
      - "127.0.0.1:3001:3001"
    restart: unless-stopped
docker compose up -d
docker compose logs -f

โปรดสังเกต 127.0.0.1: แอปพลิเคชันจะฟังเฉพาะที่ localhost เท่านั้น และมี reverse proxy เช่น Traefik หรือ nginx ทำหน้าที่จัดการ TLS termination อยู่ด้านหน้า การผูกพอร์ตโดยตรงกับ 0.0.0.0:3001 เป็นสาเหตุที่ทำให้ผู้ใช้งานเผลอเปิดเผยแผงควบคุมผู้ดูแลระบบที่ไม่มีการเข้ารหัสออกสู่สาธารณะบนอินเทอร์เน็ตโดยไม่ตั้งใจ

สิ่งที่ยังไม่ควรทำ self-host

  • อีเมล นี่คือความจริงที่ต้องยอมรับ ผู้ให้บริการ VPS ส่วนใหญ่บล็อกพอร์ต 25 ขาออก คุณจะพบกับ Connection timed out จาก telnet aspmx.l.google.com 25 ซึ่งไม่มีวิธีแก้ไขเพราะเป็นนโยบายของผู้ให้บริการ แม้จะเปิดพอร์ต 25 ได้ แต่ IP ใหม่ที่ไม่มีชื่อเสียง รวมถึงการตั้งค่า PTR record, SPF, DKIM และ DMARC ที่ไม่สมบูรณ์ จะทำให้อีเมลของคุณถูกส่งเข้าโฟลเดอร์สแปมหรือถูกปฏิเสธทันที นี่เป็นงานที่ต้องทำอย่างต่อเนื่องจริงจัง ไม่ใช่แค่โปรเจกต์ทำเล่นในวันหยุด หากคุณตั้งใจจะทำจริงๆ ให้เตรียมตัวให้พร้อมโดยศึกษาจากคู่มือ การทำ self-hosted email ด้วย Mailcow และเตรียมใจที่จะต้องคอยดูแลเรื่องการส่งอีเมลให้ถึงปลายทางเป็นเวลาหลายเดือน
  • บริการใดก็ตามที่คุณไม่สามารถสำรองข้อมูลและกู้คืนได้อย่างน่าเชื่อถือ หากคุณไม่เคยทดสอบการกู้คืนข้อมูล คุณไม่ได้มีระบบสำรองข้อมูล แต่คุณมีเพียงแค่ความหวังเท่านั้น อย่าเก็บข้อมูลที่หาทดแทนไม่ได้ เช่น สำเนาภาพถ่ายชุดเดียวของคุณ หรือบัญชีผู้ใช้ต่างๆ ไว้ในบริการที่ยังไม่ได้ผ่านการทดสอบการกู้คืน
  • สำเนาชุดเดียวของบริการที่เป็นหัวใจสำคัญ การทำ self-hosted DNS server ที่หากล่มแล้วจะทำให้เครือข่ายทั้งหมดของคุณใช้งานอินเทอร์เน็ตไม่ได้ ไม่ใช่โปรเจกต์เริ่มต้นที่ดี ควรมี upstream สำรองไว้เสมอ
  • ระบบความปลอดภัยแบบเรียลไทม์ สัญญาณเตือนภัยในบ้าน ระบบแจ้งเตือนทางการแพทย์ หรือสิ่งใดก็ตามที่หากระบบล่มเพียง 5 นาทีจะกลายเป็นปัญหาใหญ่ ไม่ควรนำมาไว้บนเครื่องเซิร์ฟเวอร์งานอดิเรกที่คุณคอยอัปเกรดในคืนวันอาทิตย์

วิธีการเลือกแอปแรกของคุณ และสองสิ่งที่ห้ามต่อรอง

ให้เลือกแอปที่ช่วยลดค่าใช้จ่ายที่คุณไม่พอใจ หรือช่วยแก้ปัญหาความเป็นส่วนตัวที่คุณกังวลอยู่จริง ในทางปฏิบัติ แอปแรกที่แนะนำให้ติดตั้งคือ Vaultwarden และ Uptime Kuma เพราะทั้งสองแอปมีขนาดเล็ก มีประโยชน์ทันที และไม่ซับซ้อนหากคุณทำผิดพลาด ให้ติดตั้งแอปหนึ่งให้ใช้งานได้สมบูรณ์ ตั้งแต่การติดตั้ง, การทำ certificate, การสำรองข้อมูล ไปจนถึงการทดสอบกู้คืนข้อมูล ก่อนที่จะเริ่มติดตั้งแอปที่สอง ทักษะที่คุณกำลังสร้างคือทักษะการปฏิบัติการ (operations) ไม่ใช่แค่การกดติดตั้ง

มีสองสิ่งที่ห้ามต่อรองสำหรับทุกแอปที่กล่าวมาข้างต้น โดยไม่มีข้อยกเว้น:

  1. ต้องใช้ TLS สำหรับทุกบริการที่เปิดสู่สาธารณะ บริการที่เข้าถึงผ่าน IP โดยตรงและเป็น plaintext ถือเป็นเพียงตัวอย่างทดลอง ไม่ใช่การใช้งานจริง ให้ติดตั้ง certificate จริงไว้หน้าบริการนั้นด้วย Certbot และ Let's Encrypt บน nginx หรือปล่อยให้ Traefik จัดการโดยอัตโนมัติ จากนั้นเพิ่มความปลอดภัยที่ด่านหน้าด้วย Fail2ban สำหรับ SSH บน Ubuntu 24.04
  2. การสำรองข้อมูลที่คุณเคยทดสอบกู้คืนจริง ให้ทำระบบสำรองข้อมูลอัตโนมัติทุกคืน โดยรวมทั้งฐานข้อมูลและ volume ข้อมูลเข้าด้วยกัน ส่งข้อมูลออกไป นอกเซิร์ฟเวอร์ และทดสอบกู้คืนลงใน VPS ชั่วคราวเดือนละครั้งเพื่อพิสูจน์ว่าใช้งานได้จริง วันที่ดิสก์ของคุณพังไม่ใช่เวลาที่ควรจะมาพบว่าไฟล์สำรองข้อมูลนั้นว่างเปล่า

หากคุณทำสองสิ่งนี้ได้ถูกต้อง การทำ self-hosting จะเป็นเรื่องที่น่าพึงพอใจ แต่หากละเลยไป มันก็เป็นเพียงการนับถอยหลังสู่ความล้มเหลวเท่านั้น

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

FAQ

ฉันควรเริ่ม self-host อะไรเป็นอย่างแรก?

Vaultwarden ครับ โปรแกรมจัดการรหัสผ่านให้ประโยชน์กับคุณได้ทุกวัน ช่วยลดค่าใช้จ่ายรายเดือน และบังคับให้คุณเรียนรู้กระบวนการทำงานทั้งหมด ทั้ง Docker, reverse proxy, TLS และการสำรองข้อมูล โดยเป็นแอปที่มีขนาดเล็กพอที่คุณจะสร้างใหม่ได้ภายในสิบนาทีหากเกิดข้อผิดพลาด Uptime Kuma เป็นตัวเลือกที่สองที่ดีเยี่ยม เพื่อให้คุณทราบถึงปัญหาการเข้าใช้งานก่อนที่ผู้ใช้ของคุณจะพบเจอ

ฉันจำเป็นต้องใช้ VPS ขนาดเท่าใด?

สำหรับแอปขนาดเล็กหนึ่งแอป RAM ขนาด 1 GB ก็เพียงพอ แต่หากต้องการเซิร์ฟเวอร์ที่รันหลายบริการได้อย่างสบาย ให้ตั้งเป้าไว้ที่ 4 GB เพราะขนาด 2 GB มักเป็นจุดที่ผู้ใช้เจอปัญหา container ถูกปิดตัวลงจากภาวะ Out-Of-Memory โดยไม่ทราบสาเหตุ RAM มักเป็นข้อจำกัดหลักเสมอ ส่วน disk ให้เพิ่มตามปริมาณข้อมูลที่คุณวางแผนจะจัดเก็บ และควรเผื่อไว้ว่า Immich, Ollama และแอปที่มีฐานข้อมูลขนาดใหญ่จะต้องการทรัพยากรทั้งสองอย่างนี้มากที่สุด

อะไรที่ไม่ควร self-host เอง?

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

ฉันจำเป็นต้องใช้ Docker สำหรับทุกอย่างนี้หรือไม่?

ไม่จำเป็น แต่คุณควรใช้ ทุกแอปในที่นี้มี Docker image ให้ใช้งาน ซึ่ง Docker ช่วยให้คุณติดตั้งได้สะอาด ลบออกได้ง่าย กำหนดเวอร์ชันที่ต้องการได้ และย้ายไปยังโฮสต์ใหม่ได้สะดวก แอปบางตัว (เช่น WireGuard, Zabbix) สามารถติดตั้งแบบ native ผ่าน apt ได้หากคุณต้องการ แต่เมื่อคุณเข้าใจไฟล์ compose หนึ่งไฟล์ คุณก็จะเข้าใจไฟล์อื่นๆ ทั้งหมด ซึ่งเป็นเหตุผลว่าทำไมรายการทั้งหมดนี้จึงดูเป็นเรื่องที่จัดการได้ง่าย

ฉันจะรักษาความปลอดภัยทั้งหมดได้อย่างไร?

นิสัยสี่ประการครอบคลุมความปลอดภัยส่วนใหญ่: ใช้ TLS ครอบทุกบริการ, ล็อก SSH ให้เข้าถึงได้ด้วย key เท่านั้นและใช้ Fail2ban เพื่อแบนการพยายามเดารหัสผ่าน, เปิดพอร์ตสู่สาธารณะเฉพาะที่จำเป็นจริงๆ เท่านั้น และเข้าถึงส่วนที่เหลือผ่าน WireGuard VPN ของคุณ รวมถึงอัปเดตซอฟต์แวร์อย่างสม่ำเสมอพร้อมอ่าน release notes เพื่อไม่ให้การอัปเกรดสร้างปัญหาโดยไม่คาดคิด การสำรองข้อมูลคือนิสัยประการที่ห้า ซึ่งเป็นสิ่งที่จะช่วยกู้คืนระบบของคุณเมื่อเกิดข้อผิดพลาดที่หลุดรอดจากสี่ประการแรกไปได้