6 คะแนน โดย GN⁺ 2024-03-05 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • 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
  • การโฮสต์เองบน Linux/macOS เริ่มได้ด้วยคำสั่งต่อไปนี้
  • การโฮสต์เองบน Windows ใช้คำสั่งต่อไปนี้ใน PowerShell
  • เอกสารการโฮสต์เองแบบละเอียดอยู่ที่ 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 ความคิดเห็น

 
GN⁺ 2024-03-05
ความคิดเห็นจาก Hacker News
  • มีคนอัปโหลด Half-Life/Xash3D เป็นแอป Puter: https://puter.com/app/half-life-c3j01ag3pyd
    ดูเหมือนจะใช้บิลด์ด้านล่างที่โฮสต์อยู่บน GitHub.io: https://github.com/Pixelsuft/hl

    • สงสัยเรื่อง ผลกระทบด้านความปลอดภัย เปิด URL ใดๆ แล้วมีแอปพลิเคชันใดๆ รันขึ้นมาภายในเดสก์ท็อปของ Internet OS
      เช่น ถ้ามีคนส่งลิงก์ตัวขโมยรหัสผ่านที่เป็นมัลแวร์มาให้ ก็ไม่รู้ว่าจะเกิดอะไรขึ้น และถ้ามี ระบบสิทธิ์อนุญาต ก็น่าจะดี
    • พูดตรงๆ ว่าน่าทึ่งจริงๆ กราฟิก, เสียง ทุกอย่างทำงานได้ดีเฉยเลย
      หลายปีมานี้เห็นเดโมแนวเดสก์ท็อปในเบราว์เซอร์มาเยอะ แต่นี่เป็นครั้งแรกที่เจอแบบนี้ และน่าประทับใจในหลายด้าน
    • ผมผ่านหน้าเมนูไปไม่ได้ สงสัยว่าเป็นผมคนเดียวหรือเปล่า
  • ในที่สุดวงจรก็ครบแล้ว ตอนนี้ก็ย่อมอยากใช้เบราว์เซอร์ใน Puter ด้วย: เครื่องเสมือนใน OS ใน OS แบบเบราว์เซอร์ในเบราว์เซอร์
    คิดแล้วเวียนหัวที่แนวคิดเอกสารมาร์กอัปถูกใช้อย่างหนักถึงขั้นนี้ เพื่อไม่ให้ผู้ใช้ต้องติดตั้งซอฟต์แวร์ จนมาถึงผลลัพธ์แบบนี้

    • The Birth & Death of JavaScript: https://www.destroyallsoftware.com/talks/the-birth-and-death...
    • มีคนนับล้านตายไปเพื่อให้คนอื่นไม่ต้องใส่เสื้อผ้าหยาบๆ คันๆ
      ความสะดวกสบายคือพลังที่ทรงอำนาจที่สุดในมนุษยชาติ
    • เมื่อคิดถึงแก่นแท้ของเว็บแล้ว น่าเสียดายมากที่หน้าเว็บไม่ได้ทำหน้าที่เป็น เบราว์เซอร์ สำหรับท่องไปหลายไซต์บ่อยกว่านี้
      การที่หน้าเว็บส่วนใหญ่เชื่อมต่อแค่กับเซิร์ฟเวอร์ของตัวเองนั้นเล็กกว่าศักยภาพที่สถาปัตยกรรมเว็บควรจะมีมาก และเป็นเพียงการยอมรับอดีตกลับมาอีกครั้ง
      ความพยายามอย่าง Solid ของ Tim Berners-Lee ดูเหมือนก้าวแรกที่ยอดเยี่ยม ส่วนไคลเอนต์ Mastodon หลากหลายตัวที่รันเป็น PWA ได้ก็เป็นทั้งตัวอย่างและข้อโต้แย้ง เพราะหน้าเว็บสามารถเชื่อมต่อไปที่ไหนก็ได้ แต่ท้ายที่สุดก็มีเซิร์ฟเวอร์ Fediverse เป็นตัวกลางเชื่อมกับโลกให้
      RSS reader ก็เช่นกัน มันเชื่อมต่อกลับไปที่บ้านของตัวเองเพื่อเชื่อมกับโลก แต่ในทางกลับกัน ไคลเอนต์อาจยื่นมือออกไปข้างนอกโดยตรงก็ได้ และถ้าเป็นแบบนั้น กิจกรรมอย่างการอ่านและการท่องเว็บ รวมถึงการติดตามรายการโปรด ก็ต้องส่งกลับบ้านหรือจัดเก็บด้วยวิธีอื่น
    • แล้วเบราว์เซอร์บน Puter รัน Puter ได้ไหม?
  • โดยส่วนตัวคิดว่า แพลตฟอร์ม Puter มีศักยภาพมหาศาล และในฐานะนักพัฒนาก็ได้คุณค่าจากมันมากแล้ว
    ผมใช้ puter.js เพิ่ม ที่เก็บข้อมูลบนคลาวด์ แบบเต็มรูปแบบให้กับตัวแก้ไขงานออกแบบ https://studio.polotno.com/ ได้ โดยไม่ต้องแตะเรื่องการยืนยันตัวตน แบ็กเอนด์ หรือฐานข้อมูลเลย

    • เห็นด้วย นี่เปิดความเป็นไปได้ที่น่าสนใจมากจริงๆ
      จากที่เข้าใจตามเอกสาร puter.js [1] วิธีทำงานคือแบบนี้: ถ้ามีที่เก็บข้อมูลบนคลาวด์ ตอนสร้างแอปฟรอนต์เอนด์ดีๆ ก็เรียก puter.js มาใช้เหมือนเป็น “แบ็กเอนด์” ได้
      ไม่ต้องกังวลเรื่องการยืนยันตัวตนผู้ใช้ เพราะ puter.js จะขอให้สร้างบัญชีหรือล็อกอินโดยอัตโนมัติ และยังจัดการที่เก็บข้อมูลบนคลาวด์กับค่าใช้จ่ายแยกตามผู้ใช้ให้ด้วย ถ้าเกินโควตาฟรีก็จะขอให้ผู้ใช้ชำระเงิน
      ยังไม่ได้ลองใช้ puter.js จริงๆ แต่ถ้าเข้าใจถูก นี่เป็นโมเดลที่ทรงพลังมาก สำหรับนักพัฒนาแอปเฉพาะทางที่ไม่ได้เน้นหารายได้ ดูเป็นวิธีที่ค่อนข้างสมเหตุสมผลในการผลักต้นทุนที่เก็บข้อมูลบนคลาวด์ไปให้ผู้ใช้ปลายทาง พร้อมกับลด effort ในการพัฒนาด้วย
      [1] https://docs.puter.com/
    • ช่วยอธิบายละเอียดขึ้นหน่อยได้ไหมว่า Puter ช่วยได้อย่างไร?
    • ชอบแนวคิดแบบนี้
      ถ้ามีใครเอา Supabase + Postgrest หรือ Hasura มาผสานเข้ากับแดชบอร์ดผู้ดูแลแบบภาพที่ใช้ง่ายตรงนี้ ก็น่าจะกลายเป็นแพลตฟอร์มสำเร็จรูปที่เข้าถึงและดีพลอยได้ง่าย
  • เท่สุดๆ แบบไม่น่าเชื่อ บนหน้าจอมือถือก็ดูค่อนข้างลื่นไหล
    jQuery เหรอ? นึกไม่ออกเลยว่าการดูแลไม่ให้พังแม้มีการเปลี่ยนแปลงเล็กๆ น้อยๆ จะยากแค่ไหน ขอปรบมือให้ที่จัดการสิ่งนี้ด้วย JavaScript ล้วนกับ jQuery
    สำหรับผม ข้อดีที่สุดของ React คือไม่ต้องกังวลว่า jQuery บรรทัดหนึ่งที่ซ่อนอยู่มุมไหนสักแห่งจะทำอะไรแปลกๆ ที่ไล่ยากจนทำให้ DOM หรือ event handler พัง

    • jQuery หรือการจัดการ DOM โดยตรงอาจทำให้พลาดจนเจ็บตัวได้ง่ายก็จริง แต่การไม่ทำแบบนั้นก็ไม่ได้ยากขนาดนั้น ส่วนใหญ่ก็เหมือนเรื่องอื่นๆ ที่แค่ต้องมี วินัย บ้าง
      React เองก็ไม่ใช่เครื่องมือที่ป้องกันความผิดพลาดได้ และในกรณีส่วนใหญ่ก็ไม่ได้คิดว่าคุ้มกับความซับซ้อนที่เพิ่มเข้ามา
    • ว้าว ไม่รู้ว่าตอนที่เคยถูกโพสต์ก่อนหน้านี้ผมได้ดู DOM ไหม ผมคิดไปเองแน่ๆ ว่าสิ่งแบบนี้น่าจะทำด้วยการวาดพิกเซลลงบน Canvas
      ถ้ามันสร้างจากองค์ประกอบ HTML จริงๆ ก็น่าประทับใจมาก
  • ผมเล่นจนติดอยู่นาน ตอนติดตั้งส่วนขยายใน VSCode แล้วลิงก์คลังโค้ดไม่ได้เปิดขึ้นมาเป็น browser inception ตัวเล็กๆ ก็เลยงง แต่ตอนนั้นผมคาดหวังไปเต็มที่แล้วว่ามันจะทำแบบนั้นจริงๆ
    ทำออกมาได้ดีมาก

    • อีกไม่นานจะเปิดซอร์ส การผสานรวม VSCode
      การทำ VSCode integration ต้องใช้แรงค่อนข้างมาก เลยหวังว่าจะเป็นประโยชน์ต่อชุมชน
  • ชอบนะ
    อยากให้ ~ แมปไปที่โฮมไดเรกทอรี เช่น cd ~/Desktop
    ปรับขนาดหน้าต่างยากมาก ถ้าจะจับขอบด้านขวา จริง ๆ มีพื้นที่แค่ 1 พิกเซลเท่านั้น
    เวลาใช้ cat แสดงผลในเทอร์มินัล อยากให้มีบรรทัดใหม่ท้ายข้อความ พรอมป์ไปโผล่อยู่บรรทัดเดียวกับผลลัพธ์ของ cat
    ต้องมีการคัดลอก-วางจากคลิปบอร์ดเข้าไปในอินสแตนซ์ Puter ด้วย
    แล้วจะติดตั้ง Python ที่นี่ได้อย่างไร?

    • มีรีโพซิทอรีแยกสำหรับแจ้งอิชชูเกี่ยวกับเชลล์: https://github.com/HeyPuter/phoenix/issues
      ถ้าไฟล์ไม่มีบรรทัดใหม่ท้ายไฟล์ cat ก็จะเริ่มเขียนพรอมป์ต่อท้ายบรรทัดสุดท้ายทันที ซึ่งเป็นพฤติกรรมตามที่คาดใน sh หรือ bash
      ภายหลังอาจปรับปรุงได้ เช่นใส่สัญลักษณ์ “ไม่มีบรรทัดใหม่” ไว้ในบรรทัดพรอมป์
  • ทุกอย่างสนุกดี จนกระทั่งเผลอกด ctrl-w ตามสัญชาตญาณเพื่อปิดหน้าต่างเสมือน แล้วดันปิดแท็บเบราว์เซอร์ที่หน้าต่างนั้นรันอยู่

    • เห็นได้ชัดว่าขาด window.onbeforeunload = () => "Are you sure you want to close this browser tab" หรือไม่ก็ต้องดักจับอินพุตคีย์บอร์ดทั้งหมด เพื่อไม่ให้มันพยายามปิดแท็บ
      ช็อตคัตของเบราว์เซอร์ ทุกอย่างที่ใช้ใน OS มีปัญหาเดียวกัน
  • ตอนเด็ก ๆ เคยฝันว่าจะพก USB stick ที่ตอนนั้นยังไม่ถูกประดิษฐ์ขึ้นด้วยซ้ำ ไปใช้กับคีออสก์หลาย ๆ เครื่อง แล้ว OS มาตรฐานจะโหลดอินสแตนซ์เฉพาะของผมขึ้นมาด้วยคีย์แบบคัสตอมของผม
    อันนี้ดูใกล้เคียงกับฟีเจอร์นั้น และยอดเยี่ยมมากที่มีเดโมละเอียดพอให้สนุกได้ การทุ่มเวลาและแพสชันมากขนาดนี้เพื่อสร้างและเผยแพร่ก็เจ๋ง และการทำเป็น โอเพนซอร์ส ก็น่าจะสร้างแรงบันดาลใจให้ใครสักคนทำคีออสก์ที่เปิดเว็บนี้เป็นค่าเริ่มต้นได้

    • เกือบ 20 ปีก่อนตอนทำงาน IT ผมเคยใช้เครื่องมือชื่อ BartPE สำหรับทำอะไรคล้าย ๆ กัน มันสร้างสภาพแวดล้อม WinPE แบบคัสตอมที่บูตจากไดรฟ์ USB ได้
      ในฐานะคนที่ต่อมาได้สร้าง “เว็บเดสก์ท็อป” แบบนี้ขึ้นมาหนึ่งตัว ของอย่าง BartPE อาจเป็นแรงบันดาลใจอยู่บ้าง
    • สิ่งที่ต้องการจริง ๆ คือ อิมเมจบูตผ่านเครือข่าย กับสตอเรจระยะไกล ที่สามารถเมานต์ได้ทันทีจากคอมพิวเตอร์เครื่องไหนก็ได้
      สิ่งที่จำเป็นก็มีแค่ตัวระบุความปลอดภัยอย่าง YubiKey เพื่อเชื่อมทุกชิ้นส่วนเข้าด้วยกัน และอินเทอร์เน็ตที่เพียงพอ
      เครื่องมือ VDI อย่าง Parsec ทำได้ในระดับหนึ่ง แต่ถ้าใช้ประโยชน์จากฮาร์ดแวร์โลคัลได้คงดีกว่า
    • ไม่รู้ทำไมเคยคิดว่า Mac Mini รุ่นแรกจะพัฒนาไปในทิศทางแบบนี้ แน่นอนว่าคิดผิด ลองค้นหา “PC Stick” แล้วก็เจอตัวเลือกน่าสนใจอยู่บ้าง
      อยากหากรณีใช้งานที่เหมาะกับสิ่งนี้จริง ๆ[0] ถ้าใช้คู่กับ USB-HDMI ก็อาจทำงานได้ใกล้เคียงมาก
      0: https://store.planetcom.co.uk/collections/gemini-pda/product...
    • Samsung DeX
    • เคยลอง Tails ไหม? https://tails.net/
  • ในเอกสารบอกว่าสามารถใช้สิ่งนี้สำหรับ การเข้าถึงระยะไกล ไปยังเซิร์ฟเวอร์และเวิร์กสเตชันได้
    แล้วจัดการเรื่องการยกระดับสิทธิ์กับแซนด์บ็อกซ์อย่างไร?
    ผมกำลังสมมติว่าหมายถึงการเข้าถึงระยะไกลสำหรับบัญชีผู้ใช้แบบเทอร์มินัลเซิร์ฟเวอร์ ไม่ใช่การดูแลเซิร์ฟเวอร์ ใช่ไหม?

  • งานทำออกมาสวยงามมาก แต่ผิดหวังที่ใน Puter ไม่มี แอปเบราว์เซอร์สำหรับเล่นอินเซปชัน เพื่อดู Puter ซ้อนอยู่ข้างใน Puter

    • ใน daedalOS ทำแบบนี้ได้: https://dustinbrett.com/
      แน่นอนว่าเล่น Doom ได้ด้วย
    • แค่เปิดแอป Puter ก็ได้: https://puter.com/app/puter
      หรือจะเปิดแอป PuterPuter ที่บรรจุตัวมันเองไว้ก็ได้: https://puter.com/app/puterputer
    • ในเชิงเทคนิค ถ้า Puter ถูกเสิร์ฟมาพร้อม กฎ CSP frame-src ที่ถูกต้อง ก็เลียนแบบด้วย iframe ได้
      แต่ถ้าจะให้ได้ประสบการณ์เบราว์เซอร์เต็มรูปแบบ ต้องมีแบ็กเอนด์และเบราว์เซอร์ระยะไกล