- แชร์ประสบการณ์เปลี่ยน Gaming PC ที่ประกอบไว้ในปี 2018 ให้กลายเป็นโฮมเซิร์ฟเวอร์ เพื่อสร้างสภาพแวดล้อมสำหรับจัดเก็บข้อมูล สำรองข้อมูล และรันแอปแบบ self-hosted
- ติดตั้ง TrueNAS Community Edition และตั้งค่า HDD 8TB จำนวน 2 ลูกเป็น RAID 1 เพื่อทำข้อมูลซ้ำซ้อน
- ใช้ แอปโอเพนซอร์สแบบ self-hosted อย่าง Immich, Backrest, Scrutiny, Mealie และ Ollama ครอบคลุมตั้งแต่การจัดการรูปภาพ การสำรองข้อมูล การมอนิเตอร์ไดรฟ์ การจัดการสูตรอาหาร ไปจนถึงการรัน LLM
- การเข้าถึงจากภายนอกใช้ Tailscale VPN และมีแผนจะปรับปรุงการเข้าถึงบริการด้วยการตั้งค่า custom domain ในอนาคต
การตั้งค่าฮาร์ดแวร์
- นำ Gaming PC ที่ประกอบไว้ในปี 2018 กลับมาใช้ใหม่ทั้งเครื่อง
- CPU: AMD Ryzen 5 2600X (6 คอร์ 3.6GHz)
- เมนบอร์ด: ASRock B450 Pro4 ATX AM4
- RAM: G.Skill Flare X 16GB DDR4-3200 (2x8GB)
- GPU: EVGA GeForce GTX 1070 Ti 8GB
- เคส: Fractal Design Meshify C
- PSU: SeaSonic PRIME Gold 650W
- การตั้งค่าสตอเรจ
- HDD: Western Digital Red Plus 8TB จำนวน 2 ลูก (ซื้อช่วงวันหยุดฤดูหนาว)
- SSD: Samsung 850 Evo 500GB (สำหรับแอป self-hosted ที่ต้องการการอ่าน/เขียนความเร็วสูง)
- NVMe: Western Digital Blue SN550 500GB (สำหรับติดตั้ง TrueNAS OS)
ระบบปฏิบัติการ TrueNAS
- ติดตั้ง TrueNAS Community Edition (เวอร์ชัน 25.10.1, Goldeye) ลงบนไดรฟ์ NVMe
- เป็นระบบปฏิบัติการที่พัฒนาบน Linux และออกแบบมาสำหรับ NAS โดยเฉพาะ ทำให้อุปกรณ์ทุกเครื่องบนเครือข่ายเข้าถึงที่เก็บไฟล์ได้
- มี ฟีเจอร์ snapshot ช่วยป้องกันการสูญหายของข้อมูล
- แม้จะเผลอลบไฟล์ ก็สามารถกู้คืนได้จาก snapshot ก่อนหน้าที่ยังมีไฟล์นั้นอยู่
- ไฟล์จะถือว่าถูกลบอย่างแท้จริงก็ต่อเมื่อไม่มี snapshot ใดในระบบที่ยังเก็บไฟล์นั้นไว้แล้ว
- สร้าง snapshot รายชั่วโมง รายวัน และรายสัปดาห์โดยอัตโนมัติ และช่วยประหยัดพื้นที่จัดเก็บด้วยการ ลบ snapshot เก่าอัตโนมัติ หลังผ่านไประยะเวลาที่กำหนด
- ตั้งค่า HDD 8TB จำนวน 2 ลูกเป็น RAID 1 (mirroring) ทำให้แม้ไดรฟ์ลูกหนึ่งจะเสีย ข้อมูลก็ยังคงอยู่ครบ
แอป self-hosted
-
Scrutiny
- เว็บแดชบอร์ด สำหรับมอนิเตอร์สถานะของไดรฟ์จัดเก็บข้อมูล
- อ่านและแสดงผลเมตริกอย่างอุณหภูมิ ชั่วโมงการทำงาน และข้อผิดพลาดในการอ่าน ที่เก็บโดยเฟิร์มแวร์ S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) ที่ฝังอยู่ใน HDD และ SSD
- แสดงแนวโน้มย้อนหลังบนแดชบอร์ด ทำให้ ตรวจจับความผิดปกติของไดรฟ์ได้ตั้งแต่เนิ่นๆ
-
Backrest
- เว็บฟรอนต์เอนด์ของ restic (เครื่องมือสำรองข้อมูลแบบ command line)
- ตั้งค่าให้บันทึกข้อมูลสำรองรายวันไปยังบักเก็ต object storage ของ Backblaze B2 โดยอัตโนมัติ
-
Immich
- หนึ่งใน แอปโอเพนซอร์สแบบ self-hosted ที่ได้รับความนิยมมากที่สุดสำหรับจัดการรูปภาพและวิดีโอ
- รองรับการสำรองรูปภาพและวิดีโอจากอุปกรณ์มือถืออัตโนมัติผ่าน แอป iOS/Android
- เหมาะสำหรับผู้ที่ต้องการลดการพึ่งพา Google Photos หรือ iCloud และปัจจุบันถูกใช้งานเพื่อสำรองรูปและวิดีโอจากโทรศัพท์
-
Mealie
- เครื่องมือจัดการสูตรอาหาร ที่ช่วยยกระดับประสบการณ์ meal prep ได้มาก
- หากเจอสูตรอาหารจากเว็บไซต์อย่าง NYT Cooking เพียงใส่ URL ก็สามารถ ดึงวัตถุดิบและวิธีทำอัตโนมัติ แล้วบันทึกไว้ในไลบรารีได้
- ช่วยติดตามและจัดการสูตรอาหารออนไลน์ที่อยากลองทำในภายหลังได้อย่างง่ายดาย
-
Ollama
- แบ็กเอนด์ สำหรับรันโมเดล AI หลากหลายแบบ
- รัน LLM อย่าง
qwen3.5:4b, gemma3:4b และ โมเดลเวกเตอร์ฝังตัว อย่าง qwen3-embedding:4b
- ทุกโมเดลมีขนาดเล็กพอที่จะใส่อยู่ใน VRAM 8GB ของ GPU ได้
- มีข้อดีคือสามารถ offload งานรันโมเดลไปยังโฮมแล็บแทนการใช้โน้ตบุ๊ก
การเข้าถึงระยะไกล
- เมื่ออยู่นอกบ้าน จะใช้ Tailscale (บริการ VPN แบบ plug-and-play) เพื่อเข้าถึงข้อมูลและแอป self-hosted จากระยะไกล
- Tailscale สร้างอยู่บน WireGuard และให้ secure tunnel เข้าสู่เครือข่ายภายในบ้าน
- จึง ไม่จำเป็นต้องเปิดเผยพีซีโฮมแล็บสู่ public internet
- ทุกอุปกรณ์ที่ต้องการเข้าถึงจากระยะไกลต้องติดตั้งแอป Tailscale และยืนยันตัวตนกับเครือข่ายก่อน
แผนในอนาคต
- ปัจจุบันเวลาจะเข้าใช้แอป ยังต้องพิมพ์ IP address + หมายเลขพอร์ต ของเครื่องโดยตรง
- เนื่องจากทุกบริการใช้ IP เดียวกัน จึงเกิดปัญหาที่ ตัวจัดการรหัสผ่านไม่สามารถแยกข้อมูลล็อกอินของแต่ละบริการได้
- ในอนาคตมีแผนจะกำหนด ชื่อโดเมนแบบกำหนดเอง ให้ทุกบริการ เพื่อให้เข้าถึงและจัดการได้สะดวกยิ่งขึ้น
5 ความคิดเห็น
ผมลองมาหลายอย่างตั้งแต่ POGO, BeagleBone Black, ไปจนถึง Lenovo Mini PC และตั้งแต่ปีก่อนก็ลงเอยกับ N100 แล้วครับ เมื่อคำนึงถึงค่าไฟและความสามารถต่าง ๆ ที่ไม่รวม GPU มันเหมาะมาก
ถ้าระดับนี้จัดโฮมแล็บได้ขนาดนี้ ค่าไฟคงน่ากลัวเลยนะครับ?
ถึงจะเป็นพีซีเกมมิง แต่ก็คงไม่ได้รันฟูลโหลดตลอดเวลา เลยคิดว่าคงไม่ต้องกังวลเรื่องค่าไฟมากนักครับ
ถ้าเป็น 2600X ตอนว่างเครื่องก็น่าจะกินไฟ 30W และ GPU ก็น่าจะกินอีกประมาณ 10W ดังนั้นก็ค่อนข้างสูงกว่าฮอมแล็บที่ตั้งค่าด้วย CPU ประหยัดพลังงาน
ถ้านับแค่ CPU+GPU ก็น่าจะใกล้เคียงกับการใช้ไฟตอนว่างเครื่องของ N100 ที่เพิ่มฮาร์ดดิสก์อีกประมาณ 3~4 ลูก
ความคิดเห็นจาก Hacker News
ทุกบริการของฉันใช้ IP เดียวกันหมด เลยทำให้ตัวจัดการรหัสผ่านสับสนว่าจะต้องใช้ข้อมูลล็อกอินชุดไหน
ใน Bitwarden สามารถเปลี่ยนอัลกอริทึมการจับคู่ได้ โดยถ้าตั้งเป็น “starts with” แทนค่าเริ่มต้น ก็จะหลีกเลี่ยงการจับคู่กับรายการที่ผิดได้
แต่พอเปลี่ยนการตั้งค่านี้แล้ว จะมีคำเตือนว่า “นี่อาจไม่ใช่สิ่งที่ตั้งใจไว้” เด้งขึ้นมา ซึ่งค่อนข้างน่ารำคาญ
ถ้าเป็นสภาพแวดล้อม homelab ก็ทำwildcard DNSด้วย dnsmasq ได้ง่าย ๆ และถึงจะไม่ได้จัดการเราเตอร์เองก็ใช้ไฟล์ hosts แทนได้เพียงพอ
mdns ก็ใช้ได้ด้วยเหตุผลเดียวกัน แต่การตั้งค่าจะซับซ้อนกว่าเล็กน้อย
แล้วต่อเข้ากับ Tailscale เพื่อให้บล็อกโฆษณาได้จากภายนอกด้วย และเข้าถึงบริการของตัวเองได้แม้อยู่นอกบ้าน
สุดท้ายเพิ่ม NGINX reverse proxy เข้าไป แต่จริง ๆ ไม่มีก็ทำงานได้ดีพออยู่แล้ว
แต่ละบริการจะแยกเป็นรูปแบบ
<service>.<yourdomain>.<tld>และยังได้ HTTPS ฟรีด้วยเข้าถึงจากระยะไกลได้โดยไม่ต้องใช้ Tailscale และถ้าต่อ Cloudflare Access ก็ล็อกอินด้วย Google หรือ Github ได้
ฉันก็ใช้การตั้งค่าคล้าย ๆ กัน
เพราะใช้เป็นเวิร์กสเตชันด้วย สเปกเลยค่อนข้างสูง
ใช้ nginx + letsencrypt wildcard สำหรับหลายซับโดเมน และเชื่อมเครือข่ายคนในครอบครัวด้วย wireguard แทน tailscale
สตรีมหนัง/ทีวีด้วย Jellyfin และส่งเพลงไปยังลำโพงหลายตัวด้วย Mopidy + snapcast
ทำ NAS ด้วย Ubuntu + ZFS mirroring และควบคุมระบบอัตโนมัติด้วย Home Assistant
จัดการกล้องวงจรปิดด้วย Frigate และรันที่เก็บโค้ดส่วนตัวด้วย Forgejo
ใช้ SDR ติดตามเครื่องบินด้วย และควบคุมอุปกรณ์ IoT ในบ้านทั้งหมดแบบโลคัล
มีคำแนะนำว่าควรแยกเครื่องสำหรับเซิร์ฟเวอร์โดยเฉพาะจะดีกว่ามาก
ฉันยังคงใช้ TrueNAS ที่ใช้ FreeBSD อยู่
เสียดายที่เวอร์ชันใหม่เปลี่ยนไปใช้ Linux แต่สำหรับคนอื่นมันอาจเป็นตัวเลือกที่ดีกว่า
ในกรณีของฉันแยก NAS, virtualization และ routing ไปคนละเครื่องกัน
TrueNAS รุ่นใหม่ช้ากว่าเดิม แต่จัดการแอปแบบ Docker สไตล์ได้ง่าย จึงน่าจะดีสำหรับมือใหม่หรือธุรกิจขนาดเล็ก
ยิ่งสร้างอินฟรามากขึ้น โครงสร้างก็ยิ่งทำให้ต้นทุนส่วนเพิ่มของการลองอะไรใหม่ ๆ ลดลง ดังนั้นฉันคิดว่าการทดลองพวกนี้ล้วนคุ้มค่า
ส่วนใหญ่แค่ Linux + NFS หรือ SMB ก็เพียงพอ
ถ้าลดเลเยอร์ที่ไม่จำเป็นลง ก็จะดูแลได้เสถียรกว่ามาก
เพราะถ้าครอบครัวใช้อินเทอร์เน็ตหรือดูหนังไม่ได้ในวันหยุด จะบ่นกันมาก
เลยรู้สึกเสียดายที่ Mac Mini มีประสิทธิภาพต่อพลังงานดีมากสำหรับใช้เป็นเซิร์ฟเวอร์
และวางแผนจะแยก NAS กับ compute server ออกจากกันทีหลัง
ผู้เขียนใช้ Restic + Backblaze B2 แต่ฉันชอบชุด Restic + BorgBase มากกว่า
BorgBase มีข้อดีคือแพ็กเกจราคาเข้าใจง่ายและบริการดี
และ Pikapods ของบริษัทเดียวกันก็น่าสนใจสำหรับผู้ใช้ homelab
1TB เดือนละ 5 ดอลลาร์ ถูกกว่า
คนส่วนใหญ่มักพูดถึงแต่การสำรองข้อมูลขึ้นคลาวด์ แต่ฉันกำลังคิดเรื่องเอาเซิร์ฟเวอร์สำรองไปไว้บ้านเพื่อน
เพราะฮาร์ดแวร์ราคาถูก ซอฟต์แวร์เป็นโอเพนซอร์ส แต่เรื่องความเป็นส่วนตัวนั้นยาก
ด้วย Wireguard หรือ Tailscale การทำoffsite backupแบบนี้เลยง่ายขึ้นมาก
เลยอยากรู้ว่ามีใครเคยทำแบบนี้ไหม
และมีแผนจะขยายแบบเดียวกันไปที่บ้านเพื่อน
จัดการรูปด้วย Immich แทน iCloud และด้วย Tailscale ก็ทำให้รับประกันความเป็นส่วนตัวได้ง่ายขึ้น
ทำ snapshot replication ด้วย ZFS + zrepl และแชร์ บันทึกขั้นตอนแก้ปัญหา ที่ AI ช่วยสรุปไว้
ตอนแรกสำรองข้อมูลในเครื่องก่อน แล้วค่อยยกดิสก์ไปเองเพื่อให้ซิงก์เฉพาะincremental เท่านั้น
ด้วยฟีเจอร์ untrusted peer ของ Syncthing จึงให้เพื่อนช่วยเป็นที่เก็บข้อมูลได้โดยข้อมูลยังคงเข้ารหัสอยู่
PC สำหรับ homelab กินไฟน้อยกว่าเดสก์ท็อปทั่วไปมาก
เดสก์ท็อปในตัวอย่างใช้ไฟปีละ 600kWh แต่ HP EliteDesk ของฉันอยู่ราว 100kWh
ถ้าไม่ต้องใช้ GPU โน้ตบุ๊กก็เพียงพอ
ใช้เกมมิงพีซีรุ่นเก่ามาทำ TrueNAS หรือ OMV เป็นตัวเลือกที่ดี
ควรต่อ HDD ผ่าน SATA มากกว่า USB เพื่อความเสถียร
มีมุกว่าราคา HDD ยังสูงอยู่เพราะความต้องการจากดาต้าเซ็นเตอร์ AI
ปรับแต่ง BIOS กับ powertop เพื่อเพิ่มประสิทธิภาพการประหยัดพลังงานได้
การเอาบริการอื่นไปรันบน NAS OS ให้ความรู้สึกเหมือนโครงสร้างกลับหัว
ฉันคิดว่าควรใช้ server OS ทั่วไปแล้วค่อยเพิ่มความสามารถด้าน NAS เข้าไปจะดีกว่า
บริการส่วนใหญ่รันแบบbare metal และแยกพวก Home Assistant หรือ Nextcloud ไว้ในคอนเทนเนอร์
ฉันกำลังสร้าง Kubernetes cluster บน Talos Linux กระจายอยู่หลายบ้าน
เชื่อมกันด้วย Wireguard และวางกล่อง ZFS ในแต่ละโซนเพื่อทำ snapshot replication
ใช้ Traefik เป็นเกตเวย์ และใช้ CrunchyPGO แยก leader/follower
ฉันรัน TrueNAS เป็น VM บน xcp-ng
ต่อ SAS controller แบบ passthrough โดยเฉพาะ และเมื่อก่อนใช้ esxi แต่ย้ายมาที่ xcp-ng ทั้งหมดแล้ว
ตั้ง DNS เป็น bind9 และตั้ง reverse proxy เป็น nginx
ยังรัน VM อื่น ๆ บน Dell OptiPlex Micro ด้วย
homelab ส่วนใหญ่ไม่ได้มีโหลดสูงมาก ดังนั้นสิ่งสำคัญคือขนาด RAMกับประสิทธิภาพด้านพลังงาน
เครื่องประหยัดไฟ 4 คอร์ก็เพียงพอแล้ว
แทบไม่มีงาน AI จึงไม่จำเป็นต้องใช้ประสิทธิภาพระดับเดสก์ท็อป