- การ self-hosting บริการส่วนตัว ช่วยให้หลุดพ้นจากการสอดส่องของบิ๊กเทคและภาครัฐ พร้อมรักษาความเป็นส่วนตัวและอธิปไตยเหนือข้อมูลได้
- ข้อมูลส่วนบุคคลที่อ่อนไหว เช่น ปฏิทิน รายชื่อผู้ติดต่อ และข้อมูลตำแหน่งที่ตั้ง เปิดเผยข้อมูลได้มากกว่าที่คิด จึงควรจัดการเองโดยไม่ต้องพึ่งบริษัทอย่าง Google หรือ Apple
- ในสถานการณ์ที่บริษัทเทคโนโลยี ล็อกบัญชีโดยไม่มีเหตุผล หรือบังคับให้ใช้ API แบบปิดแทนโปรโตคอลมาตรฐาน การรันเซิร์ฟเวอร์ของตัวเองบนพื้นฐานของโปรโตคอลมาตรฐานจึงช่วยรับประกันอธิปไตยดิจิทัล
- แนะนำ บริการ self-hosting ที่ใช้งานได้จริง เช่น เซิร์ฟเวอร์ CalDAV/CardDAV, เมลเซิร์ฟเวอร์, Home Assistant, RSS reader, ตัวติดตามตำแหน่ง พร้อมตัวเลือกซอฟต์แวร์ที่เป็นรูปธรรม
- แม้การตั้งค่าเริ่มต้นจะซับซ้อน แต่ในระยะยาว การมี อำนาจควบคุมข้อมูล และความเสถียรของบริการเป็นสิ่งสำคัญต่อการคุ้มครองความเป็นส่วนตัวและการพึ่งพาตนเองทางเทคโนโลยี
ทำไมจึงควรเลือก Self-hosting
- ไม่นานมานี้ฉันแชร์สภาพแวดล้อม Homelab ของตัวเองให้เพื่อนร่วมงานดู แล้วก็ได้รับคำถามว่า “ตกลงทำไมถึงต้องติดตั้งเซิร์ฟเวอร์เอง ตั้งค่าคอนเทนเนอร์เอง และยังต้องเสียเงินกับฮาร์ดแวร์จำนวนมากเพื่อดูแลระบบที่ยุ่งยากแบบนี้ด้วย?”
- คำถามนี้ทำให้ฉันได้อธิบายอย่างเป็นรูปธรรมถึงแรงจูงใจหลักของการทำ self-hosting และจริง ๆ แล้วมีบริการอะไรบ้างที่เราสามารถ self-host ได้
ความเป็นส่วนตัว
- ความเป็นส่วนตัวไม่ใช่สิทธิที่ได้มาโดยอัตโนมัติ แต่เป็น สิทธิที่ต้องต่อสู้เพื่อให้ได้มา
- บริษัทยักษ์ใหญ่ด้านเทคโนโลยีและรัฐบาลบางแห่ง (เช่น chat control ของ EU) ยังคงพยายามสอดส่องชีวิตส่วนตัวของผู้คนอย่างต่อเนื่อง
- หากโฮสต์บริการด้วยตัวเอง ก็สามารถลดหรือกำจัดความเสี่ยงจากการสอดส่องได้ แต่สิ่งนี้ต้องอาศัย ความรู้ทางเทคนิค
- เรายังสามารถช่วยให้ครอบครัวหรือคนรู้จักมีอิสระด้านข้อมูลได้ด้วยการให้บริการเหล่านี้แก่พวกเขา
-
ปฏิทิน & รายชื่อผู้ติดต่อ
- ปฏิทินเปิดเผย ข้อมูลได้มากกว่าที่คิด
- นอกจากข้อมูลระบุตัวตนแล้ว ยังมีข้อมูลการนัดหมายเป็นประจำ ครอบครัว เพื่อนร่วมงาน และการประชุมทางธุรกิจที่เป็นความลับ
- ข้อมูลสุขภาพจากนัดพบแพทย์ รวมถึงพฤติกรรมการนอนและการออกกำลังกาย
- ภาระผูกพันทางกฎหมาย ข้อมูลการเงิน เช่น กำหนดชำระเงินกู้หรือค่าสมาชิก
- ความเชื่อทางการเมืองจากกำหนดการเข้าร่วมการประท้วง
- สามารถใช้ดูว่าเมื่อไรเราติดต่อได้ เพื่อเอาไปใช้ในการขโมยตัวตน
- ข้อมูลรายชื่อผู้ติดต่อก็อ่อนไหวไม่แพ้กัน
- สามารถอนุมานข้อมูลส่วนบุคคลได้จาก social graph และ metadata (ประวัติการค้นหา วันที่สร้าง)
- ตัวอย่าง: ถ้าจู่ ๆ มีรายชื่อที่เป็นเพศเดียวกันและมีแค่ชื่อเพิ่มขึ้นมาเยอะ อาจถูกคาดเดาว่ากำลังออกเดตอยู่ หรือการสร้างรายชื่อนักบำบัดก็อาจสื่อว่ากำลังเข้าพบจิตแพทย์
- คนส่วนใหญ่ไม่ค่อยตระหนักว่า ข้อมูล social graph ถูกเก็บไว้ที่ไหน และในความเป็นจริง Google, Apple, Samsung เป็นต้น เป็นผู้ประมวลผลข้อมูลเหล่านี้
- แม้แต่ Advanced Data Protection ของ Apple ก็ยัง ไม่ได้เข้ารหัสแบบ end-to-end สำหรับปฏิทินและรายชื่อผู้ติดต่อ
-
ข้อมูลตำแหน่งที่ตั้ง
- เมื่อหลายปีก่อน ตอนใช้ Android และ Google Maps ฉันพบว่าในบัญชี Google มี ประวัติตำแหน่งที่ตั้งแบบละเอียดหลายปี ถูกเก็บไว้
- ฟีเจอร์ที่ฉันไม่เคยเปิดเองกลับบันทึกทุกการเดินทางและทุกสถานที่ที่ไปเป็นพิกัดภูมิศาสตร์โดยอัตโนมัติ
- มันเป็นประสบการณ์ที่ทั้งน่าทึ่งและ น่ากลัว และทำให้ฉันอยาก ควบคุมข้อมูลด้วยตัวเอง และให้ มีแค่ตัวฉันที่เข้าถึงได้
-
อื่น ๆ
- การไล่เรียงทุกวิธีที่ข้อมูลถูกติดตามและเหตุผลที่เราควรตระหนักถึงเรื่องนี้นั้นเกินขอบเขตของบทความนี้
- เป้าหมายคือการสร้างแรงจูงใจให้เริ่มต้นการเดินทางครั้งใหม่
อธิปไตย
- อธิปไตยดิจิทัล หมายถึงการควบคุมข้อมูลของตนเอง เลือกได้ว่าจะทำอะไรกับข้อมูล และควบคุมได้ว่าจะแชร์ให้ใคร
-
ปัญหาการล็อกบัญชี
- ยังคงมีรายงานกรณีที่บริษัทเทคโนโลยี ล็อกบัญชีโดยไม่มีเหตุผลชัดเจน และฉันเองก็เคยเจอกับ Google มาก่อน
- ฉันไม่อยากต้องพึ่งความเมตตาของบิ๊กเทคที่แม้แต่จะติดต่อก็ยังไม่ได้ หรือไม่ก็ต้อง ปวดหัวกับ AI chatbot
- น่าแปลกใจว่าทำไมหน่วยงานกำกับดูแลจึง ไม่บังคับให้บริษัทเทคโนโลยีมีช่องทางติดต่อกับมนุษย์จริง ๆ
-
โปรโตคอลและมาตรฐาน
- ฉันชอบ โปรโตคอลและมาตรฐานไฟล์ มากกว่า
- ใช้ SMTP และ IMAP แทน API ของ “Gmail” (แม้จะเก่า แต่ตอนนี้ยังเป็นตัวเลือกที่ดีที่สุด และยินดีต้อนรับความพยายามใหม่อย่าง JMAP)
- บิ๊กเทคอย่าง Microsoft บังคับให้ใช้ ซอฟต์แวร์ Office 365 ที่ผนวกรวม AI-Copilot และเพิ่งปิดการเข้าถึง SMTP ของบัญชี Office 365 ไปเมื่อไม่นานนี้
จะ Self-host อะไรดี
-
ฮาร์ดแวร์
- ฉันทำงานที่บริษัทชื่อ enum.co ซึ่งเป็นสภาพแวดล้อมที่ให้ความสำคัญกับอธิปไตยดิจิทัล
- ตอนนี้ฉันรัน Kubernetes cluster แบบ high availability ที่ประกอบด้วยมินิเซิร์ฟเวอร์ 3 เครื่อง (ตั้งค่าด้วยความช่วยเหลือจากหัวหน้า)
-
ปฏิทิน & รายชื่อผู้ติดต่อ
- เพราะเป็นข้อมูลที่อ่อนไหว ฉันจึงโฮสต์ เซิร์ฟเวอร์ CalDAV/CardDAV ของตัวเอง
- ตัวเลือกเซิร์ฟเวอร์:
- Radicale: พัฒนาด้วย Python, มีเว็บ UI พื้นฐาน, รองรับผู้ใช้คนเดียว, ใช้กับอุปกรณ์ Apple ไม่ได้
- ⭐ แนะนำ Baïkal: พัฒนาด้วย PHP, มีการพัฒนาอย่างต่อเนื่อง, เว็บ UI ขั้นสูง, รองรับหลายผู้ใช้
- DAViCal: พัฒนาด้วย PHP, ยังไม่เคยลอง
- Xandikos: พัฒนาด้วย Python, ไม่มีระบบยืนยันตัวตนในตัว, ไม่มีเว็บ UI
- Nextcloud: พัฒนาด้วย PHP, ถ้าใช้อยู่แล้วก็โอเค แต่หนักเกินไป
- การใส่ใจข้อมูลปฏิทินและรายชื่อผู้ติดต่อยังรวมถึงการตรวจสอบด้วยว่า แอปไหนมีสิทธิ์เข้าถึงข้อมูลเหล่านี้
-
เมล
- เมลเซิร์ฟเวอร์แบบ self-hosted มักถูกมองว่าเป็นของต้องห้าม แต่จริง ๆ แล้วไม่ได้ยากขนาดนั้น
- โซลูชันใหม่อย่าง Stalwart หรือ Mailcow ทำให้ การโฮสต์กล่องเมลส่วนตัวเป็นเรื่องง่ายขึ้น (ไม่ใช่เมลการตลาด)
- ไม่แนะนำให้โฮสต์ที่บ้าน (ต้องมี IP คงที่ และต้องเข้าถึงได้จากทั้งอินเทอร์เน็ต)
- ขั้นตอนการตั้งค่า:
- เลือกผู้ให้บริการโฮสติ้งที่เชื่อถือได้
- ตรวจสอบให้ได้ IP address ที่สะอาด (เช็ก blacklist ของอีเมลแล้วทำซ้ำจนกว่าจะได้)
- ตั้งค่าเซิร์ฟเวอร์แล้วตรวจสอบว่าสามารถรับอีเมลได้ และทุกโปรโตคอลถูกตั้งค่าอย่างถูกต้อง
- ตรวจสอบด้วยเครื่องมือทดสอบออนไลน์ internet.nl
- ส่งอีเมลไปยังที่อยู่ของ Google, Microsoft, Yahoo เพื่อดูว่าถูกจัดเป็นสแปมหรือไม่
- ตรวจสอบ DNS, DMARC, SPF, TLS ฯลฯ ซ้ำไปซ้ำมา
- วางแผนจะเขียนบล็อกโพสต์แบบละเอียดในอนาคต
-
สมาร์ตโฮม
- เมื่อหลายปีก่อน ฉันเริ่มโฮสต์ Home Assistant instance โดยตอนนั้น Apple Homekit ก็เพียงพออยู่แล้ว แต่เริ่มจากการทดลอง
- หลังจากนั้นบริษัทสมาร์ตโฮมจำนวนมากก็ล้มละลาย ปิดบริการคลาวด์ ขึ้นราคา หรือเปลี่ยนบริการฟรีให้กลายเป็นแบบเสียเงิน
- ไม่กี่สัปดาห์ก่อน ฉันได้ยินข่าวว่า Philips Hue บังคับให้ผู้ใช้สร้างบัญชี ซึ่งยิ่งทำให้ Home Assistant โดดเด่นขึ้นมา
- หากต้องการใช้ฟังก์ชันทั้งหมดของหลอดไฟที่จ่ายเงินซื้อไปแล้ว ก็จำเป็นต้องมีบัญชี
- ฉันตั้งกฎ firewall เพื่อบล็อกทราฟฟิกออกสู่นอกเครือข่ายของอุปกรณ์สมาร์ตโฮมมาโดยตลอด
- ดูเหมือนว่าแม้อยู่ในเครือข่ายภายใน ก็ยังใช้ฟังก์ชันเฉพาะของแอป Philips Hue ไม่ได้ (เช่นแอนิเมชันจำลองแสงเทียน)
- หวังว่าจะมี community plugin ที่จำลองฟังก์ชันนี้ได้
- ฉันจะ ไม่มีวันสร้างบัญชีออนไลน์สำหรับอุปกรณ์ที่ใช้งานเฉพาะในเครือข่ายภายใน
- ตอนนี้ฉันกำลังอินกับ การติดตามการใช้พลังงาน และมีแผนจะพัฒนาอุปกรณ์ Raspberry Pi + กล้อง เพื่อวัดการใช้ก๊าซจากมิเตอร์ด้วย machine vision
-
RSS aggregator
- ฉันติดตามเว็บไซต์ข่าวและบล็อกจำนวนมากผ่าน RSS และตัว RSS เองก็ กระจายศูนย์และมีอธิปไตยอยู่แล้ว
- ดังนั้นการ self-host RSS aggregator จึงเป็นทางเลือก และเป็นขั้นตอนท้าย ๆ
- ตอนนี้ใช้ NetNewsWire บน iPhone และ Mac
- เป็น RSS reader ที่ดีที่สุด เป็นโอเพนซอร์ส และได้รับการสนับสนุนจากผู้คนที่ยอดเยี่ยม
- มีการผสานรวมกับ FreshRSS แบบ native
- FreshRSS เป็น feed aggregator ที่มีฟีเจอร์มากกว่า เช่น การกรอง
- สามารถสมัครรับแหล่งข้อมูลที่ไม่ได้มี RSS feed มาให้โดยตรงได้ด้วย
-
ตัวติดตามตำแหน่งที่ตั้ง
- ฉันได้ deploy dawarich instance (ในภาษาเยอรมันหมายถึง “ฉันเคยอยู่ที่นั่น”)
- เป็นเซิร์ฟเวอร์สำหรับเก็บและดูข้อมูลพิกัดภูมิศาสตร์
- มีแอปมือถือหลายตัวให้เลือกใช้เพื่อส่งตำแหน่งปัจจุบันไปยังเซิร์ฟเวอร์
- แอปที่ใช้ได้:
- แอปทางการของ dawarich: บน iOS จะแสดงไอคอนนำทางบน notch ตลอดเวลา
- Overland: กินแบตเตอรี่มาก
- ⭐ Owntracks: ทำงานบน iOS ได้ดีที่สุด แต่การตั้งค่าแอปสับสนมาก
- PhoneTrack
ไอเดีย & แนวโน้ม
- เมื่อไม่นานมานี้ฉันปรับโครงสร้าง homelab ใหม่ โดย เปลี่ยนจากเซิร์ฟเวอร์ใหญ่เครื่องเดียวเป็น Kubernetes cluster แบบ 3 โหนด
- ทำให้มีความยืดหยุ่นมากขึ้นอย่างมากในประเภทของแอปพลิเคชันที่สามารถโฮสต์ได้
- รายชื่อแอปและเครื่องมือที่อยากลองดู:
- EteSync: CalDAV & CardDAV แบบเข้ารหัส end-to-end
- AnyType: โฮสต์ AnyType server instance ของตัวเอง
- Immich หรือ ente: ย้ายจากรูปภาพใน iCloud ไปสู่ self-hosting
- Passbolt: ตัวจัดการรหัสผ่าน (ไม่ชอบ Bitwarden)
- BirdNET: เฝ้าติดตามชนิดนกภายนอกอาคารด้วยไมโครโฟน
- penpot: คล้าย Figma แต่ฟรี & โอเพนซอร์ส
- Habitica: ตัวจัดการนิสัย
- vert: ตัวแปลงไฟล์
- InvoiceShelf: ตัวจัดการใบแจ้งหนี้
- selfh.st เป็นแหล่งข้อมูลที่ยอดเยี่ยมสำหรับการค้นหาแอปพลิเคชันที่สามารถ self-host ได้
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
อยากบอกว่าไม่ใช่แค่การ self-host บริการส่วนตัวด้วยตัวเองเท่านั้น แต่แม้แต่ธุรกิจซอฟต์แวร์หรือ SaaS ขนาดเล็กก็ควรลองพิจารณาวิธีโฮสต์แบบตรงไปตรงมามากขึ้นด้วย
ผู้ให้บริการคลาวด์มักบอกว่าพวกเขาจำเป็นเพราะเรื่องความซับซ้อนและสเกล แต่ในความเป็นจริง โปรเจกต์ซอฟต์แวร์หรือธุรกิจส่วนใหญ่ไม่ได้ต้องการขนาดนั้นเลย
ตัวอย่างเช่น สำหรับการ deploy NextJS ก็ไม่จำเป็นต้องพึ่ง Vercel หรือ Netlify เสมอไป แค่รัน Nginx หรือ Caddy (ซึ่งฉันชอบ) บน VPS ที่ติดตั้ง Ubuntu ก็พอ
เกือบ 90% ขึ้นไปของโปรเจกต์สามารถโฮสต์เองได้สบายด้วยวิธีแบบนี้
ใช้ VPS ที่ปลอดภัยและตั้งค่าควบคุมความปลอดภัยที่จำเป็น (ปิด root login, ใช้ SSH key-based login เป็นต้น)
ตั้งค่า reverse proxy อย่าง Caddy/Nginx เพื่อเสิร์ฟไฟล์สแตติกหรือเว็บไซต์ ถ้าไม่ได้มีคำขอวันละหลายล้านครั้งก็แทบไม่ต้องใช้ CDN
รัน backend/API ด้วย Supervisor หรือ systemd
reverse proxy ตัวเดียวกันก็ใช้ proxy ไปยัง backend และบริการอื่น ๆ ได้
รันฐานข้อมูล mysql/postgres เองและตั้งค่าความปลอดภัยให้เหมาะสม
ทำ backup ได้ทั้งหมดด้วยสคริปต์/cron และควรทดสอบเป็นประจำ
ถ้าต้องการป้องกัน DOS/DDOS ก็เพิ่มเลเยอร์ Cloudflare ได้
สุดท้ายสถาปัตยกรรมก็จะเป็น Cloudflare/DNS→Reverse Proxy(Caddy/Nginx)→แอป
การ deploy ส่วนใหญ่แค่
git pullก็พอ และถ้าจำเป็นก็ค่อย build เพิ่มได้Docker หรือคอนเทนเนอร์ก็ไม่ใช่สิ่งจำเป็น สำหรับโปรเจกต์ขนาดเล็กถึงกลางจะไม่ใช้ก็ได้
มันอาจดูยาก แต่จริง ๆ ไม่ได้ยากอย่างที่คิด โปรเจกต์ส่วนใหญ่ไม่ได้ต้องการเว็บสเกลระดับใหญ่โต
สิ่งที่ทำให้ฉันกังวลที่สุดคือความเสี่ยงด้านความปลอดภัยที่เกิดจากการต้องดูแลทั้ง OS (รวมถึง kernel และ userland) เอง
กลัวว่าไฟร์วอลล์จะตั้งถูกหรือยัง และจะตามแพตช์ CVE ล่าสุดได้เร็วพอไหม
เพราะงั้นเลยรู้สึกว่าการทำ workflow ด้วย GitHub Actions → build container image แล้ว push ไป private registry → deploy image นั้นด้วยค่า k8s ไปยัง service จะเสถียรกว่า
มันง่ายพอ ๆ กับการขึ้น VM เองโดยตรง และแบบนี้ฉันต้องรับผิดชอบแค่แอปกับอินเทอร์เฟซของตัวเองเท่านั้น
เหตุผลที่ฉันสร้าง canine.sh ก็เพราะอยากทำให้กระบวนการตั้งค่าทั้งหมดที่พูดถึงข้างต้นกลายเป็น one-click
ตอนเคยร่วมก่อตั้ง SaaS เล็ก ๆ เมื่อก่อน ค่าใช้คลาวด์ของเราสูงเกิน 500,000 ดอลลาร์ต่อปี
เร็วมากที่ตระหนักว่า sentry เป็นของจำเป็นสำหรับการรันโปรดักชัน และแทนที่จะไปคุ้ย server log เองทีละอัน ก็ใช้ cloud sentry เดือนละประมาณ 40 ดอลลาร์
ต้องมี datadog เพื่อ monitoring ข้อมูลด้วย เดือนละ 300 ดอลลาร์
BI tools อย่าง Looker/Tableau/Omni สำหรับ dashboard เอาไว้พรีเซนต์ลูกค้า ปีละ 20,000 ดอลลาร์
data warehouse และ replication ปีละ 150,000 ดอลลาร์
ค่าใช้จ่ายของบริการภายนอกพวกนี้สะสมขึ้นเรื่อย ๆ และท้ายที่สุดก็ได้ข้อสรุปว่าการดูแลและรันบริการภายนอกทั้งหมดบนอินฟราของตัวเองดีที่สุด
ตัวอย่างเช่น Cloud Sentry→Self Hosted Sentry, Datadog→Prometheus/Grafana, Looker→Metabase, Snowflake→Clickhouse, ETL→Airbyte เป็นต้น
นี่คือเหตุผลที่บริษัทส่วนใหญ่ลงเอยด้วยการเลือก Kubernetes
คนทำ indie hacking อาจไม่ค่อยเข้าใจว่าทำไมต้องรับความซับซ้อนของ Kubernetes แต่เหตุผลที่เอาทุกอย่างไปวางไว้บน VPS เดียวไม่ได้ก็คือสิ่งนี้เอง
เห็นด้วยกับประโยคที่ว่า "โปรเจกต์ส่วนใหญ่ไม่ได้ต้องการเว็บสเกล"
การตลาดของแพลตฟอร์มคลาวด์หลักทุกวันนี้ให้ความรู้สึกเหมือน YAGNI (You Ain't Gonna Need It) ถูกเอามาใช้กับฝั่งอินฟราด้วย
ฉันทำงานเป็น sysadmin มาตั้งแต่ต้นยุค 2000 แล้ว เวลามองกระแสที่ทุกคนกลับมาพูดถึงการโฮสต์บริการเองเหมือนเป็นนวัตกรรมอะไรใหม่ ๆ ก็น่าสนใจดี
ก่อน Docker จะมีมาตั้งนาน เราก็แยกโค้ดด้วย LXC, BSD Jails และของทำนองนั้นอยู่แล้ว มันเป็นประเพณีเก่าแก่ตั้งแต่ก่อนคำว่า DevOps อีก
การได้ดูนักพัฒนายุคนี้ค้นพบเรื่องพวกนี้ใหม่อีกครั้งก็น่าสนุกดี
สุดท้ายแล้ว ถ้ามีโอกาสร่วมงานหรือไปนั่งคุยกาแฟกับ sysadmin รุ่นเก๋า ๆ ก็ควรทำ
ยังมีคนจำนวนมากที่ยินดีดูแลอินฟราแบบดั้งเดิม และมีเคล็ดลับใช้งานจริงอีกเยอะมาก
ข้อดีอีกอย่างของการ self-host คือ ต่างจากบริการคลาวด์ ทักษะและความรู้ด้านระบบที่ได้มานั้นพกพาไปใช้ที่อื่นได้มาก
ถ้าเรียนรู้วิธีใช้ systemd, ufw, ssh เอาไว้ ก็เอาไปใช้กับระบบอื่นได้ทันที
ฉันกลับรู้สึกว่าเวลาหรือค่าใช้จ่ายที่ต้องใช้เพื่อเรียนรู้ Docker, การ build image แบบหลายเลเยอร์ และเทคนิคต่าง ๆ นั้น มากกว่าการดูแลเว็บเซิร์ฟเวอร์ Debian ทั่วไปเสียอีก
โดยรวมเห็นด้วย และขอบคุณที่แชร์ความเห็น
มีจุดเดียวที่คิดต่างคือเรื่อง "CDN จำเป็นก็ต่อเมื่อมีขนาดใหญ่"
ฉันคิดว่า CDN ไม่ได้มีไว้แค่กระจาย origin request แต่มีเป้าหมายสำคัญในการลด latency ของประสบการณ์ผู้ใช้ด้วย
ความเร็วที่ผู้ใช้รับรู้นี่แหละคือฟีเจอร์ที่สำคัญที่สุดอย่างหนึ่ง และแม้ควรระวังการ optimize ล่วงหน้าเกินจำเป็น อย่างน้อยการเสิร์ฟ static asset จาก edge ที่อยู่ใกล้ผู้ใช้ก็เป็นสเปกพื้นฐานมานานกว่า 10 ปีแล้ว
เป็นหัวข้อที่ยอดเยี่ยมมาก และฉันพอจะแชร์มุมมองจากประสบการณ์ตัวเองได้
การทำ homelab เอง ข้อดีที่ใหญ่ที่สุดไม่ใช่การประหยัดเงินหรือความเป็นส่วนตัวของข้อมูลโดยตรง แต่คือการได้ความรู้เชิงปฏิบัติที่ลึกจริง
การเรียนรู้เรื่อง Docker, networking, Linux administration จากบทความ กับการที่คุณรันบริการที่ครอบครัวใช้อยู่จริงแล้ว DNS ดันดับหรือ Docker container reboot ไม่ขึ้นจนต้องแก้เองนั้น เป็นการเรียนรู้คนละระดับกันเลย
แต่ก็มีความจริงอีกด้านหนึ่งเหมือนกัน
ตอนแรกมันเป็นโปรเจกต์สนุก ๆ แต่พอเริ่ม self-host บริการสำคัญอย่าง password manager หรือ file sync คุณก็กลายเป็นคน on-call 24/7 ไปโดยปริยาย
backup, security patch, uptime ทั้งหมดกลายเป็นความรับผิดชอบของคุณ และจากจุดนั้นมันก็ไม่ได้เป็นแค่งานอดิเรกอีกต่อไป แต่กลายเป็น "งาน"
สุดท้ายแล้ว self-hosting เป็นทางเลือกที่ให้ทั้งอำนาจควบคุมข้อมูลและความรู้สึกสำเร็จอย่างมาก แต่ก็เป็น trade-off ที่เอาค่าใช้จ่ายของ SaaS มาแทนที่ด้วยเวลาและภาระทางใจของตัวคุณเองในบทบาทฝ่าย IT
แต่ถ้าเป็นผู้ใช้ HN ฉันคิดว่ามันคุ้มค่าพอให้ลองแน่นอน
มีคนเขียนว่าตัวเองโชคดีที่ได้ทำงานในบริษัท (enum.co) ที่ให้ความสำคัญกับ digital sovereignty แต่พอลองเช็ก mail server ผ่าน info.addr.tools กลับเจอว่า MX เป็น smtp.google.com และ TXT record ก็มีทรัพย์สินของ Google อยู่หลายอย่าง
นี่ไม่ใช่แค่ "คำขวัญ" แต่เป็นความจริงที่เห็นได้ใน DNS
การบอกว่าให้ความสำคัญกับอธิปไตยดิจิทัลแต่ยังพึ่งบริการอีเมลของ Google อยู่นั้นขัดแย้งกัน
https://info.addr.tools/enum.co
ถ้าจะพูดปกป้อง enum หน่อย บริการที่พวกเขาให้คือ k8, S3-compatible storage และฝั่ง DevOps
ถ้าพวกเขาขายเรื่อง self-hosting/sovereignty ของอีเมลแต่ดันใช้ gmail เอง มันก็จะเป็นอีกเรื่องหนึ่ง
มันอาจยังไม่อิสระ 100% แต่จริง ๆ OP ก็พูดไว้แล้วว่า "แม้ mail server แบบ self-host จะถูกมองว่าเป็นของต้องห้าม แต่ก็ไม่ได้น่ากลัวอย่างที่คิด"
ทุกคนรู้ว่าปัญหานี้มีอยู่ และยังมีจุดที่ต้องปรับปรุงอีก
สวัสดีครับ ผมคือผู้ก่อตั้ง enum
ข้อสังเกตนั้นยุติธรรมและเป็นประเด็นที่ดีมาก
พูดกันตรง ๆ การใช้ Google Workspace สำหรับอีเมลภายในของเราเป็นการตัดสินใจเชิงปฏิบัติในช่วงแรก เพื่อให้โฟกัสกับการพัฒนาผลิตภัณฑ์หลัก
มันเป็นตัวเลือกที่พบได้บ่อยมากในสตาร์ตอัป และเรามีกำหนดย้ายออกภายในไม่กี่สัปดาห์ข้างหน้า
อย่างไรก็ตาม แพลตฟอร์มสำหรับลูกค้าและข้อมูลทั้งหมดของเรานั้นรักษา sovereignty ไว้ 100% มาโดยตลอด
อินฟราของเราเป็นอิสระจาก Big Tech อย่างสมบูรณ์
ขอบคุณที่ชี้ให้เห็นประเด็นนี้
สำหรับฉัน อีเมลเป็นข้อยกเว้นของการ self-host
ฉัน self-host ทุกบริการ แต่ยกอีเมลให้ third party ดูแล
ประทับใจที่คุณจับประเด็นเรื่องมี Google record อยู่ใน DNS ได้อย่างหนักแน่น
สุดยอดจริง ๆ
ส่วน TXT
google-site-verification=...ไม่ได้ "ชั่วร้าย" อะไรนัก มันเป็นการประนีประนอมเพื่อให้ Google ไม่มองอีเมลที่ส่งออกไปว่าเป็นสแปมถ้าจะ self-host อีเมล ในกรณีที่ digital sovereignty สำคัญกว่าความเป็นส่วนตัว
ฉันใช้ gmail กับ custom domain แล้ว self-host email server ของตัวเองเพื่อดึงเมลจาก gmail ลงมาตลอดด้วย mbsync
การเก็บและอ่านทำบนเซิร์ฟเวอร์ของฉันเอง แต่การส่งยังใช้ gmail เหมือนเดิม
ต่อให้ Google ตัดการเข้าถึงบัญชี ฉันก็ยังมีอีเมลของตัวเองอยู่ และเวลาเปลี่ยนผู้ให้บริการก็แค่เปลี่ยน DNS
แถมไม่มีปัญหาเรื่องการส่งอีเมลไปถึงปลายทางด้วย
ฉันเริ่ม self-host เมลเมื่อ 6 ปีก่อน โดยตั้งค่า DNS อย่าง SPF, DMARC เป็นต้น
ปัญหาเกิดขึ้นแค่ครั้งหรือสองครั้ง และส่วนใหญ่สิ่งที่น่าปวดหัวกว่าก็ไม่ใช่ mail server แต่เป็นบริการอื่นหรือเหตุขัดข้องสุ่ม ๆ การเปลี่ยน IP การทำ backup อัตโนมัติ ฯลฯ
กลายเป็นว่า mail server ทำงานของมันได้ดีอยู่เฉย ๆ
ถามหน่อยว่าทำไมถึงไม่ self-host แม้แต่ฝั่งส่งอีเมล
น่าจะเป็นเพราะปัญหาเรื่อง deliverability ใช่ไหม?
sovereignty ของอีเมลอย่างแท้จริงขึ้นอยู่กับ custom domain
ถ้าคุมสิ่งนี้ไว้ได้อย่างปลอดภัย ก็เลือกผู้ให้บริการหลายเจ้าได้ทุกเมื่อและย้ายงานได้อย่างอิสระ
self-hosting เจ๋งมาก
ตั้งแต่เมื่อปีที่แล้วที่เปลี่ยนจาก software engineer มาทำ SaaS startup ฉันก็ใช้ Coolify กับเซิร์ฟเวอร์ Hetzner ราคา 20 ดอลลาร์เพื่อโฮสต์ Postgres, Minio เวอร์ชันเก่า, Nuxt, NextJs, Umami analytics, Open WebUI, static site และอื่น ๆ เอง
ตอนแรกต้องใช้เวลาศึกษาอยู่บ้าง แต่พอตั้งค่าเสร็จแล้ว การเปิดบริการใหม่ก็ง่ายเหมือน plug-and-play
ตอนนี้ยังใช้ทรัพยากรเซิร์ฟเวอร์ไม่ถึง 1/4 เลย (เพราะผู้ใช้น้อย ฮ่า ๆ)
https://coolify.io/docs/
ผมทำงานเป็นผู้เชี่ยวชาญ IT แต่ก็ผัดวันประกันพรุ่งเรื่อง self-hosting หรือการทำ NAS ที่บ้านมาตลอด สุดท้ายเลยซื้อ Ugreen NAS รุ่น 4-bay แล้วติดตั้ง TrueNAS CE ทันที
ผมให้บริบทกับ ChatGPT ไปถึงขั้นไฟล์
docker-composeของผมเองแล้วค่อย ๆ เซ็ตระบบแม้ก่อนหน้านั้นจะมีความรู้เรื่อง Docker, networking ฯลฯ แค่เล็กน้อยสมัยยังเป็นนักศึกษา
ตอนนี้ผมรันระบบแบบนี้อยู่
เป็นแบบนี้อยู่
self-hosting ดีอยู่หรอก แต่ปัญหาคือเรื่อง backup กับ upgrade
ฉัน self-host ทรัพยากรหลายอย่าง แต่จะไม่ self-host ข้อมูลสำคัญหรือสิ่งที่คนอื่นต้องพึ่งพา
ถ้ากู้แอปกลับมาหรืออัปเกรดได้ไม่ง่าย ฉันจะไม่ยอมพึ่งมัน
ในทางปฏิบัติ แอป self-host ส่วนใหญ่ไม่ได้มี backup/restore ที่จบในหนึ่งหรือสองบรรทัด
อีกอย่าง Tailscale กับ Pangolin นี่เหมือนของขวัญจากสวรรค์สำหรับการ self-host ที่บ้านแบบปลอดภัย
อยากรู้ว่าคุณคาดหวัง backup solution แบบไหน
แอป self-host ทั้งหมดรันใน Docker อยู่แล้ว ดังนั้นแค่ backup โฟลเดอร์ volume ของคอนเทนเนอร์กับ
docker-compose.ymlก็พอตอน restore ก็แค่เอาโฟลเดอร์กลับมาแล้ว
docker compose upจบผมไม่คิดว่าแอปแต่ละตัวจำเป็นต้องทำระบบ backup ของตัวเอง นั่นเป็นการเสียเวลาของนักพัฒนา
ขอแนะนำอย่างมากให้ self-host netbird แทน Tailscale
โปรเจกต์นี้พัฒนาอย่างคึกคักมาก และ UI ก็ดีเยี่ยม
https://github.com/netbirdio/netbird
อยากรู้ว่า Pangolin คืออะไร
พอค้นดูเจอแต่สัตว์
สแตก self-host ของฉัน
บางทีคำแนะนำเรื่องอัปเกรดเวอร์ชันล่าสุดหรือ security patch ก็แย่มาก หรือบางครั้งก็ต้องไล่อัปเกรดทีละเวอร์ชันแบบข้ามไม่ได้
ถ้าจำกัดความคำว่า "self-hosting" แค่ว่าเป็นเซิร์ฟเวอร์ในบ้านอย่างเดียว มันก็คงเป็นกระแสรองตลอดไป
เราควรสนับสนุนทุกแนวทางที่ไม่ใช่ SaaS ไม่ว่าจะเป็นแอปโอเพนซอร์สที่ไม่ต้องสมัครสมาชิก แอปพลิเคชัน Windows แบบดั้งเดิม หรือคลาวด์แอปที่ย้ายออกได้ง่าย
ไม่ว่าจะด้วยวิธีไหน การหลีกเลี่ยง lock-in และทำให้ผู้ใช้มีอำนาจควบคุมต่างหากคือเป้าหมายที่แท้จริงของ self-hosting
ถึงอย่างนั้น ความหมายของคำนี้ก็ไม่ควรถูกทำให้เลือนเกินไป
ต่อให้เป็นคลาวด์แอปที่ย้ายได้ด้วย standard protocol แต่ถ้าไม่ใช่เซิร์ฟเวอร์ที่ฉันเป็นเจ้าของหรือควบคุมเอง สุดท้ายผู้ให้บริการก็ยังเปลี่ยนนโยบายข้อมูลหรือแนวทางการเก็บข้อมูลได้ตามใจ
คุณไม่มีทางมั่นใจได้ว่าข้อมูลจะไม่ถูกเก็บแบบไม่คาดคิด หรือก่อนบริการจะปิดตัวจะย้ายข้อมูลออกได้จริงหรือไม่
ซอฟต์แวร์แบบติดตั้งบน Windows ก็อาจนับเป็น self-hosting ได้เหมือนกัน
ในทางปฏิบัติ หลายคนก็เริ่มจากไฟล์ executable บน Windows หรือ Docker แล้วค่อยพัฒนาไปทีละขั้น
อย่างน้อยที่สุด ฉันคิดว่าการรันเซิร์ฟเวอร์ในดาต้าเซ็นเตอร์ของคนอื่น (เช่น colocation) โดยที่คุณยังมีสิทธิ์ root เอง ก็นับเป็น self-hosting
เมื่อ 20 ปีก่อน แม้แต่คุณปู่ยังเข้า limewire.com ดาวน์โหลด
setup.exeแล้วกด next -> next -> next ก็ได้ file server กับ client ที่สมบูรณ์แบบแล้วในปี 2007 คอมพิวเตอร์หนึ่งในสามของโลกใช้ limewire
แต่ทุกวันนี้ แม้แต่ซอฟต์แวร์ self-hosting พื้นฐานมาก ๆ ก็แทบมีแต่วิศวกรมืออาชีพเท่านั้นที่ติดตั้งได้
ต้องใช้ SSH, Docker, Tailscale, TLS certificate และการดูแลซับซ้อนอีกมาก รวมถึง backup กับ automation จิปาถะนับไม่ถ้วน...
เลยอดสงสัยไม่ได้ว่าทำไมซอฟต์แวร์ "self-hosting" แบบ
apt-get installแล้วจบถึงหายากนักและนี่แหละคือเหตุผลที่ไม่มีใครโฮสต์เอง
https://en.wikipedia.org/wiki/LimeWire
ซอฟต์แวร์บางตัวก็ติดตั้งจบด้วย
apt-get installได้จริง แต่ถ้าจะเปิดบริการออกสู่อินเทอร์เน็ต คุณก็ต้องเริ่มจากการตั้งค่า domain name กับ HTTPS อยู่ดีclient อย่าง Limewire หรือ BitTorrent ใช้งานได้โดยไม่ต้องมีโดเมนก็เพราะมี central server (เช่น tracker) ช่วยอยู่เบื้องหลัง
คนส่วนใหญ่คงไม่คิดว่า installer อย่าง limewire เป็น self-hosting
มันก็แค่ติดตั้งโปรแกรมบนเครื่อง локัล
Ubuntu เคยพยายามทำให้ติดตั้งแอปฝั่งเซิร์ฟเวอร์ได้ง่ายผ่าน snap แต่ชุมชนต่อต้านหนักจนไม่สำเร็จ
snap เองก็มีข้อเสีย แต่ format นี้ถูกสร้างมาเพื่อทำให้การแจกจ่าย server app ง่ายขึ้น
ยกตัวอย่างเช่น ทุกวันนี้ก็ยังติดตั้ง nextcloud ผ่าน snap ได้
สุดท้ายก็เหมือนปฏิเสธแม้แต่ความ "ดีพอใช้ได้" เพราะมันไม่สมบูรณ์แบบ
Limewire เป็นแค่ client ไม่ใช่ server
ถ้าจะให้อัปโหลดได้จริงก็ยังต้องตั้ง firewall/port forwarding และอาจต้องเปิด UPnP (ซึ่งไม่แนะนำ)
เซิร์ฟเวอร์สำหรับ self-hosting เป็นอีกโลกหนึ่งไปเลย
ในโลกที่เมื่อก่อนมือใหม่ก็น่าจะทำอะไรอัตโนมัติได้ ตอนนี้เพราะพวกแฮกเกอร์ตัวร้าย ความยากในการตั้งค่าและดูแลจึงสูงขึ้นมาก
ต่อให้เป็นผู้เชี่ยวชาญเองก็ยังไร้ทางสู้กับ penetration tester มืออาชีพหรือแฮกเกอร์ระดับรัฐชาติ
ฉันคิดว่าการพัฒนาซอฟต์แวร์ทุกวันนี้ซับซ้อนเกินไปมาก
มันคล้ายระบบราชการที่ค่อย ๆ สร้างปัญหาไร้สาระขึ้นมาเพื่อรักษาอาชีพของตัวเอง
คนส่วนใหญ่ไม่ได้ต้องการ self-hosting ถึงขั้นนั้น แค่ให้มันรันบนคอมพิวเตอร์ตัวเองและเข้าจากเครือข่ายท้องถิ่นได้เป็นบางครั้งก็น่าจะพอ
แต่กลับไม่มีโมเดลรายได้รองรับ และนักพัฒนาก็หมกมุ่นกับเลเยอร์เฉพาะทางหรือสถาปัตยกรรมที่ซับซ้อนเกินจำเป็น
ผลลัพธ์คือได้ซอฟต์แวร์ฝั่งเซิร์ฟเวอร์, เว็บวิว, ความแยกขาดระหว่างข้อมูลกับสภาพแวดล้อมโลคัล และมีแต่อุปกรณ์ให้ต้องดูแลเพิ่มขึ้น
คอมพิวเตอร์ส่วนใหญ่แทบไม่ได้ใช้งาน แต่เลเยอร์สำหรับผู้ดูแลกลับพอกขึ้นเรื่อย ๆ
ฉันคิดว่ากระแสโน้ตบุ๊กก็เป็นส่วนหนึ่งของความสับสนนี้เหมือนกัน
แอปโลคัลดี ๆ บน Mac หายไปเรื่อย ๆ และถูกแทนที่ด้วยบริการคลาวด์แบบ subscription
แม้แต่โอเพนซอร์สเองก็มักลงเอยเป็น Docker image, การตั้งค่าซับซ้อน และ gotcha อีกเป็นภูเขา
ถ้ามันติดตั้งและดูแลง่ายกว่านี้ ต่อให้ต้องจ่ายเงินก็น่าใช้
แต่ตอนนี้ไม่มีใครรู้เลยว่าจะต้องเสียเวลาแค่ไหน สุดท้ายทุกคนก็เลยยอมยกให้ Big Tech จัดการแทน
แม้เทคโนโลยีเว็บจะยอดเยี่ยมสำหรับเอกสารแบบโต้ตอบได้ แต่สำหรับการใช้งานนอกเหนือจากนั้น มันก็ยังมีปัญหาใหญ่ด้าน usability อยู่ดี