2 คะแนน โดย GN⁺ 2025-09-04 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • บล็อกนี้รันอยู่บน Google Pixel 5 ที่นำกลับมาใช้ใหม่
  • ใช้เครื่องมืออย่าง Termux เพื่อสร้างสภาพแวดล้อมเซิร์ฟเวอร์และเปิดใช้งานบล็อกบนอุปกรณ์พกพา
  • ใช้ชุด แผงโซลาร์เซลล์ 100W ร่วมกับ Jackery 160W power station เพื่อให้บล็อกทำงานแบบออฟกริด (off-grid) ได้อย่างสมบูรณ์
  • บล็อกใช้ Hugo เป็นพื้นฐาน และรองรับการติดตั้งแพ็กเกจ การทำงานอัตโนมัติ รวมถึงการสำรอง/จัดการไฟล์ได้อย่างสะดวกด้วย ssh, rsync, cron เป็นต้น
  • แม้จะเป็นสมาร์ตโฟน Android ก็ยังทำงานได้เสถียรและรวดเร็วเหมือนเซิร์ฟเวอร์ลินุกซ์ทั่วไป พร้อมใช้พลังงานอย่างมีประสิทธิภาพ

บทนำและแรงจูงใจ

  • บล็อกนี้ทำงานด้วย Google Pixel 5 และ พลังงานหมุนเวียน (พลังงานแสงอาทิตย์) เท่านั้น
  • ได้แรงบันดาลใจจากผู้ใช้ Mastodon จำนวนมากที่โฮสต์เว็บไซต์ด้วยฮาร์ดแวร์สร้างสรรค์อย่าง ESP32, อุปกรณ์ Android, เราเตอร์ เป็นต้น
  • ผู้เขียนเริ่มทดลองด้วยตนเองเพื่อทำให้ ฮาร์ดแวร์มือสอง กลับมามีประโยชน์ในรูปแบบใหม่ โดยคำนึงถึงการใช้พลังงานต่ำ

ฮาร์ดแวร์และสภาพแวดล้อมเครือข่าย

  • จากอุปกรณ์หลายชิ้นที่เก็บไว้ ได้เลือก Google Pixel 5 เพราะรองรับอีเธอร์เน็ตแบบต่อสายโดยตรง (USB-OTG และด็อก) และยังได้รับอัปเดตความปลอดภัยล่าสุด
  • แม้จะติด Verizon lock จึงติดตั้ง custom ROM ไม่ได้ แต่ก็ยังใช้งานในสภาพแวดล้อม Android เดิมต่อไป
  • ให้ความสำคัญกับการใช้งาน เครือข่ายอีเธอร์เน็ตแบบใช้สายจริง แทนการเชื่อมต่อแบบไร้สาย (Wi‑Fi)

บล็อกออฟกริดที่ใช้พลังงานแสงอาทิตย์

  • จ่ายไฟด้วยแผงโซลาร์เซลล์แบบ monocrystalline 100W ของ Harbor Freight Tools และ Jackery 160W power station
  • ชุดนี้ช่วยสะสมประสบการณ์ด้าน permacomputing (การประมวลผลที่ยั่งยืนถาวร) และการทดลองใช้พลังงานหมุนเวียน
  • ยืนยันความเป็นไปได้ในการรันเว็บไซต์ออฟกริดแบบแยกอิสระโดยใช้เพียงชิ้นส่วนมือสอง
โฆษณา

การสร้างเว็บไซต์: Termux และ Hugo

  • เดิมทีพิจารณาการสร้างสภาพแวดล้อมลินุกซ์ทั่วไป แต่สุดท้ายเลือกใช้ Termux ซึ่งเป็น Android terminal emulator พร้อมระบบแพ็กเกจของตัวเอง
  • แพ็กเกจสำคัญอย่าง ssh, git, hugo มีอยู่ในคลังของ Termux มานานแล้ว
  • ติดตั้ง Hugo ลงบน Termux โดยตรง และย้ายบล็อกเดิมที่สร้างด้วย Hugo มาใช้งาน

ประสบการณ์การใช้งานจริง

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

การติดตั้งและดูแลง่าย

  • สามารถตั้งค่าเซิร์ฟเวอร์ได้อย่างรวดเร็วเพียงติดตั้ง git, screen, โปรแกรมแก้ไขข้อความ และ hugo
  • การอัปโหลดไฟล์และโพสต์ใหม่ทำได้ด้วยแพ็กเกจ dufs (static file server แบบใช้งานผ่านเบราว์เซอร์) หรือ scp
  • dufs ก็สามารถติดตั้งได้ง่ายจากคลังของ Termux เช่นกัน

รายการแพ็กเกจยูทิลิตี้พื้นฐาน

  • rsync, openssh, git, wget, curl, fish shell, cronie, termux-services, iperf3, speedtest-go, screen, helix, hugo
โฆษณา

การทำงานอัตโนมัติของบริการและการเข้าถึงผ่าน SSH

  • ภายใน Termux สามารถสั่งรัน sshd/cronie ในระดับบริการได้ด้วย (sv-enable)
  • เมื่อตั้งค่าตามเอกสารทางการ ต้องระวังเรื่องการลงทะเบียน SSH public key, พอร์ตคงที่ (8022) และชื่อผู้ใช้ที่ระบบสร้างให้อัตโนมัติ

การทำงานอัตโนมัติของบล็อกที่ใช้ Hugo

  • จัดการคำสั่งรัน hugo serve โดยลงทะเบียนเป็น alias ของ fish shell
  • สร้างสคริปต์อัตโนมัติ (~/scripts/blog_reload.sh) เพื่อจัดการงานต่าง ๆ เช่น ปิด screen session เดิม ลบแคช และสร้าง session ใหม่
  • ลงทะเบียน cron job ผ่าน cronie (*/5 * * * * ...) เพื่อรีสตาร์ตและรีโหลดบล็อกเป็นระยะ

การสำรองข้อมูลและการจัดการข้อมูล

  • สามารถเชื่อมต่อจากระยะไกลผ่าน ssh บน Termux แล้วสำรองทั้งไดเรกทอรีด้วย rsync ได้
  • รวมถึงการทำงานอัตโนมัติผ่าน cron ร่วมกับเดสก์ท็อปและ NAS
  • ยังสำรองเพิ่มผ่าน git instance ของตนเองได้ และจะใช้ forge อื่นอย่าง Github ก็ได้อย่างอิสระ

สรุปและส่งท้าย

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

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

 
GN⁺ 2025-09-04
ความคิดเห็นจาก Hacker News
  • ชอบไอเดียการนำสมาร์ตโฟนเก่ามาใช้กับงานโครงสร้างพื้นฐานแบบเบา ๆ เพราะกินไฟต่ำและมี UPS ในตัวอยู่แล้ว (แม้จะมีข้อเสีย แต่ก็พอแก้ได้ในระดับหนึ่ง) ฉันเองก็มีอุปกรณ์ Android เก่าอยู่หลายเครื่องเลยอยากลองทำอะไรเจ๋ง ๆ แบบนี้บ้าง แม้โฮมแล็บที่รันอยู่แล้วจะเพิ่มฟังก์ชันผ่าน VM หรือคอนเทนเนอร์ได้ง่ายและแทบไม่เพิ่มการใช้พลังงาน แต่ความพยายามแบบนี้ก็ยังดูเท่มากและฉันก็อยากลอง สิ่งหนึ่งที่สงสัยคือทำไมถึงไม่ใช้ WiFi อุปกรณ์ dock -> Ethernet ดูเหมือนเป็นของเสริมที่ไม่จำเป็นและยิ่งเพิ่มการใช้พลังงานอีก คิดว่าโทรศัพท์รุ่นเก่าคงไม่ต้องการแบนด์วิดท์มากขนาดนั้น เลยสงสัยว่าทำไมผู้เขียนถึงยืนยันจะเลือก Ethernet แบบมีสาย อ้อ แล้วดูเหมือนต้องเพิ่ม Pixel 5 เข้าไปในรายการอุปกรณ์โฮมแล็บด้วย เลย์เอาต์เว็บและข้อมูลก็ดีมาก
    • ฉันก็ใช้งาน Pixel 3 ติดแบบแม่เหล็กไว้ทางซ้ายของคีย์บอร์ด เปิดหน้าเว็บที่แสดงกริดปุ่มไว้ แล้วกดปุ่มเพื่อทำงานต่าง ๆ เช่น ใส่ timestamp ที่ตำแหน่งเคอร์เซอร์ สลับเปิดปิดจอ หรือเปิดแอปบางตัว เดิมทีอยากซื้อ Elgato Stream Deck แต่พอดีมีมือถือเหลืออยู่เลยเอามาใช้แบบนี้
    • อยากเห็นชุดคิท "แปลงเป็นเซิร์ฟเวอร์" สำหรับอุปกรณ์พกพาเก่า ๆ แบบเดียวกับคิทแปลง Game Boy Advance เป็นคอนโซล [https://fingercramp.com/portfolio/…] คือถอดเมนบอร์ดโทรศัพท์ออกมาแล้วต่อเพิ่มกับสตอเรจภายนอก แหล่งจ่ายไฟที่ดีกว่า อินเทอร์เฟซเครือข่ายจริง ฯลฯ
    • ผมเป็นคนเขียนบล็อกเอง ขอบคุณครับ เห็นด้วยว่าการเพิ่ม VM หรือคอนเทนเนอร์ในโฮมแล็บที่ทำงานอยู่แล้วแทบไม่เพิ่มการใช้พลังงาน ผมเริ่มโปรเจ็กต์นี้เพราะความสนุก และอยากลองให้ไฟมาจากพลังงานแสงอาทิตย์ เดิมทีตั้งใจจะปิดโฮมแล็บตอนกลางคืนแล้วปล่อยให้โทรศัพท์รันต่อด้วยแบตเตอรี่ แต่ตอนนี้โฮมแล็บกลายเป็นโครงสร้างพื้นฐานจำเป็นจนต้องเปิดตลอด เหตุผลที่ต้องใช้ Ethernet เพราะต้องการแบนด์วิดท์ที่เสถียร เครือข่าย WiFi ที่บ้านผมประสิทธิภาพไม่ค่อยดีนัก
    • WiFi มี latency สูงและไม่นิ่ง คำขอจากเซิร์ฟเวอร์ที่ช้าที่สุด 1% อาจช้ากว่าเดิมเกือบ 1 วินาที ถ้าจะรันบล็อกบนโทรศัพท์ก็ควรตอบสนองให้เร็วมาก โทรศัพท์ Android รุ่นเก่าอาจไม่รองรับมาตรฐาน WiFi ใหม่ ๆ และอาจรับทราฟฟิกตอนขึ้นหน้าแรก HN ไม่ไหว
    • บนสมาร์ตโฟน WiFi มักมีปัญหาเรื่องการเชื่อมต่อขาเข้าที่ไม่คาดคิด เพราะฟีเจอร์ประหยัดพลังงานทำให้ประสิทธิภาพไม่เสถียรและหน่วงมาก ไม่แน่ใจว่าปิดได้ด้วย kernel parameter หรือเปล่า แต่ถึงทำได้ก็น่าจะต้อง root
  • ประสิทธิภาพการใช้พลังงานของสมาร์ตโฟนน่าสนใจมาก ทุกวันนี้มือถือแทบจะเหมือน ARM server ที่จูนมาเพื่อการใช้แบตเตอรี่ Pixel 5 ใช้ไฟไม่ถึง 5W แม้ตอน full load ขณะที่เซิร์ฟเวอร์ x86 ทั่วไปกิน 50~100W แค่บล็อกส่วนตัวก็อาจประหยัดไฟได้ 400~800kWh ต่อปี ผลกระทบด้านสิ่งแวดล้อมจากการใช้ซ้ำแทนการรีไซเคิลอุปกรณ์อิเล็กทรอนิกส์นั้นมากกว่าที่คิด
    • ถ้าเป็น static site เอาไปลง S3 หรือ Github Pages จะมีประสิทธิภาพกว่ามาก ตอนที่ไม่มี request เลย การใช้ทรัพยากรเป็น 0 การใช้เซิร์ฟเวอร์ x86 ที่บ้านเพื่อรัน static site นั้นไม่มีประสิทธิภาพมาก
    • x86 ก็ทำให้กินไฟต่ำได้เหมือนกัน ระบบ n100 idle ต่ำกว่า 10W และแม้โหลดสูงสุดก็ยังอยู่ราว 20-30W
    • เรื่องที่ CPU x86 ใช้ไฟ 50~100W กับงานที่มือถือปี 2020 ก็ทำได้ เป็นเรื่องของเมื่อประมาณ 10 ปีก่อนแล้ว เดี๋ยวนี้ไม่ค่อยมีใครเผาไฟ 75W เพื่อโฮสต์ไฟล์ static ไม่กี่ไฟล์ สรุปคือการเอาสมาร์ตโฟนเก่าที่เหลืออยู่ในบ้านมาใช้แทน Pi แบบกินไฟต่ำก็ยังเป็นไอเดียที่ดี
    • ถ้าประหยัดได้ปีละ 400~800kWh ก็เทียบเป็นค่าไฟเฉลี่ยในสหรัฐฯ (13.2 เซนต์ต่อกิโลวัตต์ชั่วโมง) ได้สูงสุด 105.60 ดอลลาร์ หรือราว 8.8 ดอลลาร์ต่อเดือน ซึ่งยังไม่ถึง 1% ของเส้นความยากจนสำหรับคนโสดในปี 2025 ที่ 15,650 ดอลลาร์ ประสิทธิภาพพลังงานนั้นดี แต่ในภาพใหญ่ก็ไม่ได้ต่างมากนัก
  • ถ้าจะให้แม่นยำกว่านั้น มันคือ Google Pixel 5 ที่ นำกลับมาใช้ซ้ำ ไม่ใช่ถูกแยกชิ้นส่วนแล้วผลิตใหม่ทั้งหมด ลำดับ Reduce, Reuse, Recycle ก็เรียงตามผลกระทบต่อสิ่งแวดล้อม โดยการใช้ซ้ำดีกว่าอีกขั้น
    • แต่ถ้ามองภาพรวมว่าเป็นการนำกลับมาใช้ใหม่ คำว่า “รีไซเคิล” ก็ไม่ได้ผิดนัก [https://en.wiktionary.org/wiki/recycle/…]
    • คำว่า recycle ก็ถูกตามไวยากรณ์เหมือนกัน แทบไม่มีความหมายต่างจาก reuse
  • เมื่อเทียบกับความพยายามนำ RPi หรือบอร์ดอื่น ๆ กลับมาใช้ใหม่ การใช้ Pixel 5 ก็ดูสมเหตุสมผล แถมอาจแรงกว่าด้วยซ้ำ หน้าจอน่าจะเป็นตัวกินไฟหลัก เลยสงสัยว่าเขาปรับแต่งพลังงานอย่างไรเพื่อรับมือกับความร้อนภายใต้โหลดสูง Hugo ที่บล็อกนี้ใช้เป็นตัวสร้าง static site ที่เขียนด้วย Go และดูเหมาะกับการเสิร์ฟคอนเทนต์ อนึ่ง ช่วงนี้ฉันเริ่มชอบ SSG มากขึ้น และกำลังคิดจะทำ Markdown blog editor ด้วย Tauri/Rust + React/MUI พร้อมเชื่อมกับ git และ deploy ผ่าน Cloudflare แต่ยังไม่ได้ลงมือจริง เสียดายที่เมื่อก่อน MS เคยมี GUI blog editor แล้วตอนนี้หายไปแล้ว
  • สิ่งที่กังวลที่สุดคือจะหลีกเลี่ยงปัญหา ‘spicy pillow’ (แบตเตอรี่บวมและเสี่ยงไฟไหม้) ได้อย่างไร ถ้ารันผ่าน USB อย่างเดียวโดยไม่มีแบตเตอรี่น่าจะดีมาก
    • ทุกวันนี้มีโทรศัพท์บางรุ่นที่ตั้งจำกัดการชาร์จไว้แค่ 80% ได้ ถ้าไม่มี ก็ใช้สมาร์ตปลั๊กกับตัวตั้งเวลา หรือ IFTTT เพื่อควบคุมไฟอัตโนมัติตามระดับแบตเตอรี่ได้ เช่น ให้เปิดเมื่อเหลือต่ำกว่า 40% และปิดเมื่อเกิน 60%
    • สิ่งที่น่าหงุดหงิดที่สุดคือ ต่อให้ถอดเซลล์แบตเตอรี่ออกแล้วจ่ายไฟตรงเข้า BMS, Android ก็ยังอาจปิดเครื่องหลังผ่านไประยะหนึ่งพร้อมบอกว่า “แบตเตอรี่หมด” ซึ่งจะกันได้ก็ต่อเมื่อ root แล้ว และยุ่งมาก ถ้ามีวิธีจ่ายไฟตรงจากผนังได้เลย ปัญหานี้ก็จะหายไปด้วย
    • ฉันมีอุปกรณ์ Android เก่าหลายเครื่องเสียบกับ USB multi-charger แล้วเอาทั้งชุดไปต่อกับสมาร์ตสวิตช์ ให้มันชาร์จแค่ไม่กี่ชั่วโมงตอนกลางคืน หลังเปลี่ยนรอมและ root ก็ใช้แอป ACCA จำกัดการชาร์จไว้ที่ 80% Samsung Note 5 ที่ออกปี 2015 เคยบวมไปเมื่อประมาณครึ่งปีก่อน แต่ Samsung S9 กับ Nokia 6.1 ที่ลง LineageOS ยังทำงานได้ดีมา 6 ปีแล้ว
    • ดูวิธีแบบนี้ได้ [https://www.instructables.com/Power-an-Android-Phone-Without-Battery/] และยังหาซื้อแบตเตอรี่จำลองสำหรับบางรุ่นได้ออนไลน์ด้วย
    • หรือจะใส่ไว้ในกล่องกันไฟ แล้วถ้าพังก็ค่อยเปลี่ยนเครื่องใหม่ก็ได้
  • นึกภาพว่าคงมีผู้บริหาร Google สักคนสงสัยว่า “ทำไมเราถึงยอมให้คนเอาอุปกรณ์ Google ไปใช้ซ้ำแบบนี้ได้ มีทางติดโฆษณาใส่ไหม?”
  • ฉันพิมพ์คอมเมนต์นี้จาก Pixel 5 ที่ยังสภาพดีอยู่ มันเป็นโทรศัพท์ที่ดีที่สุดที่ฉันเคยใช้ ขนาดกำลังพอดี มีสแกนนิ้วด้านหลัง และอื่น ๆ ที่ลงตัวดี โทรศัพท์รุ่นหลังจากนั้นไม่มีรุ่นไหนทำให้พอใจได้เลย
    • ฉันก็ใช้ Pixel 5 รีเฟอร์บิชที่ซื้อมาราว 250 ดอลลาร์เหมือนกัน เป็นโทรศัพท์ที่ดีที่สุดที่ฉันมีเช่นกัน ดีไซน์ปี 2020 นั้นเรียบง่ายและใช้งานจริง (เช่น ตัดฟีเจอร์โชว์เท่แบบสแกนนิ้วใต้จอออก) เลยทำให้อยู่ได้นานแบบไม่เบื่อ หวังว่าจะยังได้ทั้งแบต 2~3 วันต่อการชาร์จและคุณภาพภาพถ่ายระดับ ‘ดีพอใช้’ ไปอีกนาน
    • Pixel 5 ของฉันน่าจะถึงเวลาต้องเปลี่ยนแบตแล้ว ตอนนี้ต้องชาร์จวันละสองสามรอบเพราะแบตหมดเร็วมาก
    • ฉันก็คล้ายกัน จะใช้ iPhone SE2 ไปจนพังเลย (ปีใกล้กัน ขนาดใกล้กัน น้ำหนักใกล้กัน มี Touch ID ฯลฯ)
  • สงสัยว่าในการตั้งค่าแบบนี้จัดการ DNS กันอย่างไร เพราะปกติ ISP ไม่น่าจะชอบให้รันเซิร์ฟเวอร์บนเน็ตบ้านทั่วไป
    • ปัญหาจริงคือ NAT ฉันกำลังตาม issue ของ tailscale อยู่ [https://github.com/tailscale/tailscale/issues/11563] อีกทางคือคุยกับ ISP โดยตรง (หรือย้ายไปเจ้าอื่น) แล้วจ่ายเพิ่มเล็กน้อย เช่น +5 ยูโร/เดือน เพื่อเอา static IP ตัวอย่างเช่นจะได้ใช้เล่น Factorio multiplayer กับเพื่อนได้ด้วย
    • ISP ส่วนใหญ่นั้นในทางปฏิบัติใช้ IP แบบ ‘dynamic’ แต่แทบไม่เปลี่ยนเลย ของฉันเปลี่ยนแบบสุ่มปีละครั้งได้มั้ง แล้วก็ค่อยอัปเดต DNS เองตอนนั้น จะทำอัตโนมัติก็ได้ แต่เพราะไม่ได้เกิดบ่อยเลยทำมือเอา ปกติ ISP จะเริ่มสนใจก็ตอนทราฟฟิกฝั่งอัปโหลดอิ่มต่อเนื่อง และพวก Comcast/XFinity ก็อัปโหลด/ดาวน์โหลดไม่สมดุลมาก ควรจำไว้
    • ตอนนี้มีโซลูชัน dynamic DNS หลายแบบ TP-link และเจ้าอื่น ๆ ก็ตั้งค่าผ่านแอปได้ง่าย
    • ฉันใช้อินเทอร์เน็ต 2.5 กิกะบิตแต่ก็ยังไม่มี static IP เลยใช้สคริปต์บนเราเตอร์ให้อัปเดตค่า DNS ทุกครั้งที่ IP เปลี่ยน ถ้าผู้ให้บริการ DNS อนุญาตให้ปรับ ttl ก็ทำอัตโนมัติได้
  • ลิงก์ที่เกี่ยวข้อง: [https://fairphone.com/en/2024/…]
  • เอ่อ ที่นี่คือบล็อกของผมเอง ผมก็แค่คนธรรมดาที่เขียนเรื่องจิปาถะ รู้สึกเหมือนโดนดีดออกมาจากบ่อน้ำ HN account ก็เพิ่งสร้างวันนี้เอง ถ้าจะตอบคำถามก็คือ 1) ตอนนี้ยังรันบล็อกบน Pixel อยู่ และไม่มีเหตุผลให้ต้องเปลี่ยน 2) ที่เอาขึ้นอินเทอร์เน็ตบ้านก็เพราะแต่แรกคิดว่าคงไม่มีทราฟฟิกอะไร 3) ผมเป็นคนที่ชอบทดลองโน่นนี่ที่บ้านตอนเย็นวันทำงาน ไม่ได้อยู่ในวงการนี้จริง ๆ อันที่จริงผมเป็นเจ้าของบริษัทรับเหมาก่อสร้าง
    • วิธีคิดของคุณเหมือนวิศวกรมาก น่าจะเข้ากับที่นี่ได้ดี ฉันลองดูโพสต์อื่น ๆ ในบล็อกแล้วก็มีหลายอันที่น่าสนใจ เลย์เอาต์ก็อ่านง่าย เดี๋ยวจะกลับไปอ่านอีก โพสต์ “อยากอยู่คนเดียว” ก็เคยได้รับความนิยมใน HN ด้วย
    • อ่านแล้วน่าสนใจมาก มีอยู่ข้อหนึ่งที่สงสัย: ทำไมถึงไม่ build ไฟล์ด้วย hugo แล้วใช้เว็บเซิร์ฟเวอร์อย่าง nginx แทนการรันแค่ hugo serve?