HN เปิดเผย: นักพัฒนาที่ทำผู้ใช้ถึง 1 ล้านคนใน 3 ปี ก่อนโอเพนซอร์ส “Internet OS”
(github.com/HeyPuter)- Puter คือ คอมพิวเตอร์อินเทอร์เน็ตโอเพนซอร์ส ที่ถูกเปิดเผยหลังมีผู้ใช้ครบ 1 ล้านคน รองรับการโฮสต์เอง ออกแบบมาให้ครบฟีเจอร์ รวดเร็ว และขยายระบบได้
- ผู้ใช้สามารถใช้งานแอปอย่าง Notepad, Voice Recorder, Spreadsheet, Camera ได้ในที่เดียว โดยมุ่งเป็นสภาพแวดล้อมดิจิทัลแบบ all-in-one สำหรับ งาน·การสร้างสรรค์·ความบันเทิง
- นักพัฒนาสามารถใช้ AI, Cloud Storage, Database, Serverless Workers เพื่อสร้างเว็บแอปและเกม แล้วเผยแพร่บน App Store เพื่อเข้าถึงผู้ใช้และสร้างรายได้
- วิธีใช้งานแบ่งเป็นการพัฒนาแบบโลคัล, self-hosting สำหรับ Linux/macOS·Windows และการใช้บริการโฮสต์ที่ puter.com
- ตัว repository ทั้งหมด รวมถึงโปรเจกต์ย่อย โมดูล และคอมโพเนนต์ จะใช้ไลเซนส์ AGPL-3.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น ส่วนไลบรารี third-party ที่รวมมาอาจอยู่ภายใต้ไลเซนส์ของแต่ละโครงการ
สิ่งที่ Puter มีให้
- Puter เป็น คอมพิวเตอร์อินเทอร์เน็ตโอเพนซอร์ส ระดับสูง และถูกออกแบบมาให้รองรับการโฮสต์เอง
- เป้าหมายคือการมอบสภาพแวดล้อมที่ครบฟีเจอร์ รวดเร็ว และมี ความสามารถในการขยายระบบ สูง
- มีไลฟ์เดโมให้ลองที่ Puter.com
สภาพแวดล้อมสำหรับผู้ใช้
- Puter ตั้งเป้าที่จะมอบแอปและความสามารถที่จำเป็นต่อการทำงาน การสร้างสรรค์ และความบันเทิงไว้ ภายใต้หลังคาเดียวกัน
- ตัวอย่างแอปมีดังนี้
- ในมุมผู้ใช้ Puter มุ่งเป็น โซลูชัน all-in-one สำหรับชีวิตดิจิทัล
แพลตฟอร์มสำหรับนักพัฒนา
- Puter มอบความสามารถที่จำเป็นสำหรับการสร้างและเผยแพร่เว็บแอปกับเกม
- ขอบเขตที่รองรับมีดังนี้
- หลังสร้างแอปแล้ว สามารถเผยแพร่ไปยัง App Store เพื่อเข้าถึงผู้ใช้และ สร้างรายได้
วิธีรันและการเผยแพร่
- การพัฒนาแบบโลคัลทำได้โดย clone repository แล้วรัน
npm install,npm start- หลังรันแล้ว Puter จะเปิดที่
http://puter.localhost:4100
- หลังรันแล้ว Puter จะเปิดที่
- การโฮสต์เองบน Linux/macOS เริ่มได้ด้วยคำสั่งต่อไปนี้
curl -fsSL https://puter.com/selfhost | sh
- การโฮสต์เองบน Windows ใช้คำสั่งต่อไปนี้ใน PowerShell
irm https://puter.com/selfhost?os=windows | iex
- เอกสารการโฮสต์เองแบบละเอียดอยู่ที่ Self-Hosting Puter
- บริการโฮสต์มีให้ที่ puter.com
ช่องทางสนับสนุนและไลเซนส์
- รายงานบั๊กและคำขอฟีเจอร์รับผ่าน GitHub Issues
- ช่องทางติดต่อชุมชนประกอบด้วย Discord, X, Reddit, Mastodon และอีเมล
- ประเด็นด้านความปลอดภัยหรือการแจ้งการนำไปใช้ในทางที่ผิด สามารถส่งไปที่
security@puter.com - repository และโปรเจกต์ย่อย โมดูล คอมโพเนนต์ทั้งหมดจะใช้ไลเซนส์ AGPL-3.0 หากไม่มีการระบุไว้เป็นอย่างอื่น
- ไลบรารี third-party ที่รวมอยู่ใน repository อาจใช้ไลเซนส์ของแต่ละไลบรารีเอง
เอกสารแปล
- README มีฉบับแปลหลายภาษา
- รายชื่อภาษาที่แปลมี Arabic, Chinese, English, French, German, Hindi, Japanese, Korean, Portuguese, Spanish, Vietnamese เป็นต้น
- เอกสารแปลภาษาเกาหลีมีให้ที่ Korean
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
มีคนอัปโหลด Half-Life/Xash3D เป็นแอป Puter: https://puter.com/app/half-life-c3j01ag3pyd
ดูเหมือนจะใช้บิลด์ด้านล่างที่โฮสต์อยู่บน GitHub.io: https://github.com/Pixelsuft/hl
เช่น ถ้ามีคนส่งลิงก์ตัวขโมยรหัสผ่านที่เป็นมัลแวร์มาให้ ก็ไม่รู้ว่าจะเกิดอะไรขึ้น และถ้ามี ระบบสิทธิ์อนุญาต ก็น่าจะดี
หลายปีมานี้เห็นเดโมแนวเดสก์ท็อปในเบราว์เซอร์มาเยอะ แต่นี่เป็นครั้งแรกที่เจอแบบนี้ และน่าประทับใจในหลายด้าน
ในที่สุดวงจรก็ครบแล้ว ตอนนี้ก็ย่อมอยากใช้เบราว์เซอร์ใน Puter ด้วย: เครื่องเสมือนใน OS ใน OS แบบเบราว์เซอร์ในเบราว์เซอร์…
คิดแล้วเวียนหัวที่แนวคิดเอกสารมาร์กอัปถูกใช้อย่างหนักถึงขั้นนี้ เพื่อไม่ให้ผู้ใช้ต้องติดตั้งซอฟต์แวร์ จนมาถึงผลลัพธ์แบบนี้
ความสะดวกสบายคือพลังที่ทรงอำนาจที่สุดในมนุษยชาติ
การที่หน้าเว็บส่วนใหญ่เชื่อมต่อแค่กับเซิร์ฟเวอร์ของตัวเองนั้นเล็กกว่าศักยภาพที่สถาปัตยกรรมเว็บควรจะมีมาก และเป็นเพียงการยอมรับอดีตกลับมาอีกครั้ง
ความพยายามอย่าง Solid ของ Tim Berners-Lee ดูเหมือนก้าวแรกที่ยอดเยี่ยม ส่วนไคลเอนต์ Mastodon หลากหลายตัวที่รันเป็น PWA ได้ก็เป็นทั้งตัวอย่างและข้อโต้แย้ง เพราะหน้าเว็บสามารถเชื่อมต่อไปที่ไหนก็ได้ แต่ท้ายที่สุดก็มีเซิร์ฟเวอร์ Fediverse เป็นตัวกลางเชื่อมกับโลกให้
RSS reader ก็เช่นกัน มันเชื่อมต่อกลับไปที่บ้านของตัวเองเพื่อเชื่อมกับโลก แต่ในทางกลับกัน ไคลเอนต์อาจยื่นมือออกไปข้างนอกโดยตรงก็ได้ และถ้าเป็นแบบนั้น กิจกรรมอย่างการอ่านและการท่องเว็บ รวมถึงการติดตามรายการโปรด ก็ต้องส่งกลับบ้านหรือจัดเก็บด้วยวิธีอื่น
โดยส่วนตัวคิดว่า แพลตฟอร์ม Puter มีศักยภาพมหาศาล และในฐานะนักพัฒนาก็ได้คุณค่าจากมันมากแล้ว
ผมใช้
puter.jsเพิ่ม ที่เก็บข้อมูลบนคลาวด์ แบบเต็มรูปแบบให้กับตัวแก้ไขงานออกแบบ https://studio.polotno.com/ ได้ โดยไม่ต้องแตะเรื่องการยืนยันตัวตน แบ็กเอนด์ หรือฐานข้อมูลเลยจากที่เข้าใจตามเอกสาร
puter.js[1] วิธีทำงานคือแบบนี้: ถ้ามีที่เก็บข้อมูลบนคลาวด์ ตอนสร้างแอปฟรอนต์เอนด์ดีๆ ก็เรียกputer.jsมาใช้เหมือนเป็น “แบ็กเอนด์” ได้ไม่ต้องกังวลเรื่องการยืนยันตัวตนผู้ใช้ เพราะ
puter.jsจะขอให้สร้างบัญชีหรือล็อกอินโดยอัตโนมัติ และยังจัดการที่เก็บข้อมูลบนคลาวด์กับค่าใช้จ่ายแยกตามผู้ใช้ให้ด้วย ถ้าเกินโควตาฟรีก็จะขอให้ผู้ใช้ชำระเงินยังไม่ได้ลองใช้
puter.jsจริงๆ แต่ถ้าเข้าใจถูก นี่เป็นโมเดลที่ทรงพลังมาก สำหรับนักพัฒนาแอปเฉพาะทางที่ไม่ได้เน้นหารายได้ ดูเป็นวิธีที่ค่อนข้างสมเหตุสมผลในการผลักต้นทุนที่เก็บข้อมูลบนคลาวด์ไปให้ผู้ใช้ปลายทาง พร้อมกับลด effort ในการพัฒนาด้วย[1] https://docs.puter.com/
ถ้ามีใครเอา Supabase + Postgrest หรือ Hasura มาผสานเข้ากับแดชบอร์ดผู้ดูแลแบบภาพที่ใช้ง่ายตรงนี้ ก็น่าจะกลายเป็นแพลตฟอร์มสำเร็จรูปที่เข้าถึงและดีพลอยได้ง่าย
เท่สุดๆ แบบไม่น่าเชื่อ บนหน้าจอมือถือก็ดูค่อนข้างลื่นไหล
jQuery เหรอ? นึกไม่ออกเลยว่าการดูแลไม่ให้พังแม้มีการเปลี่ยนแปลงเล็กๆ น้อยๆ จะยากแค่ไหน ขอปรบมือให้ที่จัดการสิ่งนี้ด้วย JavaScript ล้วนกับ jQuery
สำหรับผม ข้อดีที่สุดของ React คือไม่ต้องกังวลว่า jQuery บรรทัดหนึ่งที่ซ่อนอยู่มุมไหนสักแห่งจะทำอะไรแปลกๆ ที่ไล่ยากจนทำให้ DOM หรือ event handler พัง
React เองก็ไม่ใช่เครื่องมือที่ป้องกันความผิดพลาดได้ และในกรณีส่วนใหญ่ก็ไม่ได้คิดว่าคุ้มกับความซับซ้อนที่เพิ่มเข้ามา
ถ้ามันสร้างจากองค์ประกอบ HTML จริงๆ ก็น่าประทับใจมาก
ผมเล่นจนติดอยู่นาน ตอนติดตั้งส่วนขยายใน VSCode แล้วลิงก์คลังโค้ดไม่ได้เปิดขึ้นมาเป็น browser inception ตัวเล็กๆ ก็เลยงง แต่ตอนนั้นผมคาดหวังไปเต็มที่แล้วว่ามันจะทำแบบนั้นจริงๆ
ทำออกมาได้ดีมาก
การทำ VSCode integration ต้องใช้แรงค่อนข้างมาก เลยหวังว่าจะเป็นประโยชน์ต่อชุมชน
ชอบนะ
อยากให้
~แมปไปที่โฮมไดเรกทอรี เช่นcd ~/Desktopปรับขนาดหน้าต่างยากมาก ถ้าจะจับขอบด้านขวา จริง ๆ มีพื้นที่แค่ 1 พิกเซลเท่านั้น
เวลาใช้
catแสดงผลในเทอร์มินัล อยากให้มีบรรทัดใหม่ท้ายข้อความ พรอมป์ไปโผล่อยู่บรรทัดเดียวกับผลลัพธ์ของcatต้องมีการคัดลอก-วางจากคลิปบอร์ดเข้าไปในอินสแตนซ์ Puter ด้วย
แล้วจะติดตั้ง Python ที่นี่ได้อย่างไร?
ถ้าไฟล์ไม่มีบรรทัดใหม่ท้ายไฟล์
catก็จะเริ่มเขียนพรอมป์ต่อท้ายบรรทัดสุดท้ายทันที ซึ่งเป็นพฤติกรรมตามที่คาดในshหรือbashภายหลังอาจปรับปรุงได้ เช่นใส่สัญลักษณ์ “ไม่มีบรรทัดใหม่” ไว้ในบรรทัดพรอมป์
ทุกอย่างสนุกดี จนกระทั่งเผลอกด ctrl-w ตามสัญชาตญาณเพื่อปิดหน้าต่างเสมือน แล้วดันปิดแท็บเบราว์เซอร์ที่หน้าต่างนั้นรันอยู่
window.onbeforeunload = () => "Are you sure you want to close this browser tab"หรือไม่ก็ต้องดักจับอินพุตคีย์บอร์ดทั้งหมด เพื่อไม่ให้มันพยายามปิดแท็บช็อตคัตของเบราว์เซอร์ ทุกอย่างที่ใช้ใน OS มีปัญหาเดียวกัน
ตอนเด็ก ๆ เคยฝันว่าจะพก USB stick ที่ตอนนั้นยังไม่ถูกประดิษฐ์ขึ้นด้วยซ้ำ ไปใช้กับคีออสก์หลาย ๆ เครื่อง แล้ว OS มาตรฐานจะโหลดอินสแตนซ์เฉพาะของผมขึ้นมาด้วยคีย์แบบคัสตอมของผม
อันนี้ดูใกล้เคียงกับฟีเจอร์นั้น และยอดเยี่ยมมากที่มีเดโมละเอียดพอให้สนุกได้ การทุ่มเวลาและแพสชันมากขนาดนี้เพื่อสร้างและเผยแพร่ก็เจ๋ง และการทำเป็น โอเพนซอร์ส ก็น่าจะสร้างแรงบันดาลใจให้ใครสักคนทำคีออสก์ที่เปิดเว็บนี้เป็นค่าเริ่มต้นได้
ในฐานะคนที่ต่อมาได้สร้าง “เว็บเดสก์ท็อป” แบบนี้ขึ้นมาหนึ่งตัว ของอย่าง BartPE อาจเป็นแรงบันดาลใจอยู่บ้าง
สิ่งที่จำเป็นก็มีแค่ตัวระบุความปลอดภัยอย่าง YubiKey เพื่อเชื่อมทุกชิ้นส่วนเข้าด้วยกัน และอินเทอร์เน็ตที่เพียงพอ
เครื่องมือ VDI อย่าง Parsec ทำได้ในระดับหนึ่ง แต่ถ้าใช้ประโยชน์จากฮาร์ดแวร์โลคัลได้คงดีกว่า
อยากหากรณีใช้งานที่เหมาะกับสิ่งนี้จริง ๆ[0] ถ้าใช้คู่กับ USB-HDMI ก็อาจทำงานได้ใกล้เคียงมาก
0: https://store.planetcom.co.uk/collections/gemini-pda/product...
ในเอกสารบอกว่าสามารถใช้สิ่งนี้สำหรับ การเข้าถึงระยะไกล ไปยังเซิร์ฟเวอร์และเวิร์กสเตชันได้
แล้วจัดการเรื่องการยกระดับสิทธิ์กับแซนด์บ็อกซ์อย่างไร?
ผมกำลังสมมติว่าหมายถึงการเข้าถึงระยะไกลสำหรับบัญชีผู้ใช้แบบเทอร์มินัลเซิร์ฟเวอร์ ไม่ใช่การดูแลเซิร์ฟเวอร์ ใช่ไหม?
งานทำออกมาสวยงามมาก แต่ผิดหวังที่ใน Puter ไม่มี แอปเบราว์เซอร์สำหรับเล่นอินเซปชัน เพื่อดู Puter ซ้อนอยู่ข้างใน Puter
แน่นอนว่าเล่น Doom ได้ด้วย
หรือจะเปิดแอป PuterPuter ที่บรรจุตัวมันเองไว้ก็ได้: https://puter.com/app/puterputer
frame-srcที่ถูกต้อง ก็เลียนแบบด้วย iframe ได้แต่ถ้าจะให้ได้ประสบการณ์เบราว์เซอร์เต็มรูปแบบ ต้องมีแบ็กเอนด์และเบราว์เซอร์ระยะไกล