6 điểm bởi GN⁺ 2024-03-05 | 1 bình luận | Chia sẻ qua WhatsApp
  • Puter là một máy tính Internet mã nguồn mở được công bố sau khi đạt 1 triệu người dùng; có thể tự host, giàu tính năng, được thiết kế để nhanh và dễ mở rộng
  • Người dùng có thể dùng các ứng dụng như Notepad, Voice Recorder, Spreadsheet, Camera ở một nơi, hướng tới một môi trường số tất cả trong một để xử lý công việc, sáng tạo và giải trí
  • Nhà phát triển có thể tạo ứng dụng web và game bằng AI, Cloud Storage, Database, Serverless Workers, rồi phân phối trên App Store để tiếp cận người dùng và kiếm tiền
  • Cách chạy gồm phát triển cục bộ, tự host cho Linux/macOS và Windows, hoặc dùng dịch vụ hosting puter.com
  • Toàn bộ repository cùng các dự án con, module và component tuân theo giấy phép AGPL-3.0 nếu không có ghi chú riêng; các thư viện bên thứ ba đi kèm có thể áp dụng giấy phép riêng của chúng

Puter cung cấp những gì

  • Puter là một máy tính Internet mã nguồn mở cao cấp, được thiết kế để có thể tự host
  • Mục tiêu là cung cấp một môi trường giàu tính năng, nhanh và có khả năng mở rộng cao
  • Bản demo trực tiếp có tại Puter.com

Môi trường dành cho người dùng

  • Puter hướng tới việc cung cấp các ứng dụng và tính năng cần thiết cho làm việc, sáng tạo và giải trí dưới cùng một mái nhà
  • Ví dụ ứng dụng gồm:
  • Từ góc nhìn người dùng, Puter hướng tới một giải pháp tất cả trong một cho đời sống số

Nền tảng dành cho nhà phát triển

  • Puter cung cấp các tính năng cần thiết để tạo và phân phối ứng dụng web cũng như game
  • Các mảng được cung cấp gồm:
  • Sau khi tạo ứng dụng, có thể đăng lên App Store để tiếp cận người dùng và kiếm tiền

Cách chạy và triển khai

Kênh hỗ trợ và giấy phép

  • Báo cáo lỗi và yêu cầu tính năng được tiếp nhận qua GitHub Issues
  • Cộng đồng và kênh liên hệ bao gồm Discord, X, Reddit, Mastodon và email
  • Vấn đề bảo mật hoặc báo cáo lạm dụng có thể gửi tới security@puter.com
  • Repository cùng các dự án con, module và component của nó tuân theo giấy phép AGPL-3.0 nếu không có ghi chú riêng
  • Các thư viện bên thứ ba được đưa vào repository có thể tuân theo giấy phép riêng của từng thư viện

Tài liệu dịch

  • README cung cấp bản dịch ở nhiều ngôn ngữ
  • Danh sách bản dịch bao gồm Arabic, Chinese, English, French, German, Hindi, Japanese, Korean, Portuguese, Spanish, Vietnamese, v.v.
  • Tài liệu dịch tiếng Hàn được cung cấp tại Korean / tiếng Hàn

1 bình luận

 
GN⁺ 2024-03-05
Ý kiến trên Hacker News
  • Có người đã đưa Half-Life/Xash3D lên thành một ứng dụng Puter: https://puter.com/app/half-life-c3j01ag3pyd
    Có vẻ như nó dùng bản build bên dưới được host trên GitHub.io: https://github.com/Pixelsuft/hl

    • Tôi tò mò về tác động bảo mật. Tôi mở một URL bất kỳ và một ứng dụng bất kỳ chạy bên trong desktop Internet OS
      Ví dụ, nếu ai đó gửi một liên kết trình đánh cắp mật khẩu độc hại thì không biết chuyện gì sẽ xảy ra; sẽ tốt hơn nếu có hệ thống quyền hạn
    • Thành thật mà nói, thật sự đáng kinh ngạc. Đồ họa, âm thanh đều hoạt động ngon lành
      Tôi đã thấy nhiều demo kiểu desktop trong trình duyệt suốt nhiều năm, nhưng đây là lần đầu thấy thứ như thế này, và nó ấn tượng ở nhiều khía cạnh
    • Tôi không qua được menu, không biết có phải chỉ mình tôi bị vậy không
  • Cuối cùng vòng tròn cũng khép kín. Giờ thì tất nhiên tôi muốn dùng cả trình duyệt bên trong Puter: máy ảo trong OS trong OS trình duyệt trong trình duyệt
    Thật choáng váng khi khái niệm tài liệu markup bị vắt kiệt đến mức này chỉ để người dùng không phải cài phần mềm, và cuối cùng dẫn tới kết quả như thế

    • The Birth & Death of JavaScript: https://www.destroyallsoftware.com/talks/the-birth-and-death...
    • Hàng triệu người đã chết để những người khác không phải mặc quần áo thô ráp khó chịu
      Sự tiện lợi là sức mạnh lớn nhất của nhân loại
    • Nghĩ về bản chất của web, thật đáng tiếc khi các trang không thường xuyên đóng vai trò trình duyệt để điều hướng qua nhiều website hơn
      Việc các trang phần lớn chỉ kết nối tới máy chủ của chính mình nhỏ bé hơn rất nhiều so với tiềm năng mà kiến trúc web từng có, và chỉ là sự quay lại chấp nhận quá khứ mà thôi
      Những nỗ lực như Solid của Tim Berners-Lee trông như một bước khởi đầu tuyệt vời. Nhiều client Mastodon khác nhau có thể chạy dưới dạng PWA cũng vừa là ví dụ vừa là phản ví dụ: trang có thể kết nối tới bất cứ đâu, nhưng cuối cùng máy chủ Fediverse vẫn làm trung gian để kết nối với thế giới
      Trình đọc RSS cũng vậy: để kết nối với thế giới, nó kết nối về nhà mình. Thay vào đó, có lẽ client cũng có thể trực tiếp vươn ra bên ngoài; khi đó các hoạt động như đọc, duyệt và theo dõi bookmark sẽ cần được gửi lại về nhà hoặc lưu bằng cách khác
    • Nhưng trình duyệt chạy trên Puter có chạy được Puter không?
  • Cá nhân tôi thấy nền tảng Puter có tiềm năng rất lớn, và với tư cách nhà phát triển, tôi đã nhận được giá trị lớn từ nó
    Nhờ dùng puter.js, tôi đã có thể gắn lưu trữ đám mây hoàn chỉnh vào trình biên tập thiết kế https://studio.polotno.com/ mà không cần đụng tới xác thực, backend hay cơ sở dữ liệu

    • Đồng ý. Điều này mở ra những khả năng thật sự thú vị
      Dựa trên tài liệu puter.js [1], cách tôi hiểu là thế này: khi xây một ứng dụng frontend tốt cần có lưu trữ đám mây, chỉ cần gọi puter.js như một “backend”
      Không cần bận tâm tới xác thực người dùng vì puter.js sẽ tự động yêu cầu tạo tài khoản hoặc đăng nhập, đồng thời việc quản lý và chi phí lưu trữ đám mây cũng được xử lý theo từng người dùng. Nếu vượt quá hạn mức miễn phí, nó cũng yêu cầu người dùng thanh toán
      Tôi chưa thật sự dùng puter.js, nhưng nếu hiểu đúng thì đây là một mô hình mạnh mẽ. Với các nhà phát triển ứng dụng ngách không nhằm kiếm tiền, đây có vẻ là một cách khá hợp lý để chuyển chi phí lưu trữ đám mây cho người dùng cuối, đồng thời giảm effort phát triển
      [1] https://docs.puter.com/
    • Bạn có thể giải thích chi tiết hơn Puter đã giúp ích như thế nào không?
    • Tôi thích ý tưởng này
      Nếu ai đó kết hợp Supabase + Postgrest hoặc Hasura với một dashboard quản trị trực quan dễ dùng vào đây, nó có thể trở thành một nền tảng hoàn chỉnh, dễ truy cập và dễ triển khai
  • Hay đến mức vô lý. Trên màn hình di động trông cũng khá mượt
    jQuery ư? Tôi không thể tưởng tượng nổi việc giữ cho nó không vỡ chỉ vì những thay đổi rất nhỏ sẽ khó đến mức nào. Xin vỗ tay vì đã quản lý được thứ này bằng JavaScript thuần và jQuery
    Cá nhân tôi thấy điểm hay nhất của React là không phải lo một dòng jQuery nào đó ở xó xỉnh làm trò kỳ quặc khó lần ra, rồi phá DOM hoặc event handler

    • Dùng jQuery hoặc thao tác DOM trực tiếp thì rất dễ tự bắn vào chân, nhưng tránh làm vậy cũng không quá khó. Như hầu hết mọi việc, chỉ cần một chút kỷ luật
      React cũng tuyệt đối không phải công cụ ngăn bạn mắc lỗi, và trong đa số trường hợp tôi không thấy nó đáng để đánh đổi lấy độ phức tạp bổ sung
    • Wow, không biết hồi nó được đăng trước đây tôi có xem DOM chưa. Tôi mặc nhiên nghĩ những thứ như thế này sẽ được làm bằng cách vẽ pixel lên Canvas
      Nếu nó thật sự được tạo từ các phần tử HTML thì rất ấn tượng
  • Tôi đã mải mê nghịch nó một lúc lâu. Khi cài extension trong VSCode, tôi hơi bối rối vì liên kết repository không mở ra thành một lớp trình duyệt inception nhỏ, nhưng đến lúc đó thì tôi đã hoàn toàn kỳ vọng nó sẽ như vậy
    Làm rất tốt

    • Chúng tôi sắp mở mã nguồn phần tích hợp VSCode
      Việc tạo tích hợp VSCode tốn khá nhiều công sức, nên hy vọng nó sẽ hữu ích cho cộng đồng
  • Thích
    Sẽ hay nếu ~ được ánh xạ tới thư mục home. Ví dụ: cd ~/Desktop
    Khó thay đổi kích thước cửa sổ. Thực tế chỉ có khoảng 1 pixel để nắm vào mép phải
    Khi xuất bằng cat trong terminal, sẽ tốt hơn nếu cuối văn bản có dòng mới. Prompt xuất hiện cùng dòng với output của cat
    Cũng cần sao chép-dán từ clipboard vào instance Puter
    Cài Python ở đây như thế nào?

    • Có một repository riêng để báo các vấn đề liên quan đến shell: https://github.com/HeyPuter/phoenix/issues
      Nếu cuối file không có dòng mới, cat sẽ bắt đầu viết prompt ngay sau dòng cuối cùng; đây là hành vi đúng như mong đợi trong sh hoặc bash
      Sau này cũng có thể cải thiện bằng cách thêm chỉ báo “không có dòng mới” trên dòng prompt
  • Mọi thứ đều vui cho đến khi theo phản xạ nhấn ctrl-w để đóng cửa sổ ảo, rồi đóng luôn tab trình duyệt đang chạy cửa sổ đó

    • Rõ ràng là đang thiếu window.onbeforeunload = () => "Are you sure you want to close this browser tab", hoặc phải chặn hoàn toàn nhập liệu bàn phím để nó không cố đóng tab
      Mọi phím tắt trình duyệt dùng bên trong OS đều gặp cùng vấn đề
  • Hồi nhỏ, tôi từng mơ mình cầm một USB stick—thứ khi đó thậm chí còn chưa được phát minh—đến nhiều kiosk, và nhờ khóa tùy chỉnh của mình mà OS tiêu chuẩn sẽ tải đúng instance riêng của tôi
    Cái này trông khá gần với tính năng đó, và thật tuyệt khi có một bản demo đủ kỹ lưỡng để có thể tận hưởng. Việc bỏ ra nhiều thời gian và đam mê như vậy để xây dựng rồi công bố cũng rất đáng nể, và việc biến nó thành mã nguồn mở có thể truyền cảm hứng để ai đó làm một kiosk mặc định mở trang này

    • Gần 20 năm trước, khi làm IT, tôi từng dùng một công cụ tên là BartPE để làm thứ tương tự. Nó cho phép tạo môi trường WinPE tùy chỉnh có thể boot từ ổ USB
      Với tư cách là người sau này đã tạo một trong những “web desktop” kiểu này, có lẽ những thứ như BartPE cũng đã truyền cảm hứng ở mức nào đó
    • Thứ tôi thực sự muốn là một image boot qua mạng và kho lưu trữ từ xa có thể mount ngay lập tức trên bất kỳ máy tính nào
      Những gì cần có chỉ là một định danh bảo mật như YubiKey để kết nối mọi mảnh ghép, và Internet đủ tốt
      Có thể làm được phần nào bằng các công cụ VDI như Parsec, nhưng nếu tận dụng được phần cứng cục bộ thì sẽ tốt hơn
    • Không hiểu sao tôi từng nghĩ Mac Mini ban đầu sẽ phát triển theo hướng kiểu này, nhưng tất nhiên là tôi đã sai. Tìm “PC Stick” thì thấy có vài lựa chọn thú vị
      Tôi thật sự muốn tìm ra một trường hợp sử dụng đáng để dùng cái này[0]. Kết hợp với USB-HDMI thì có thể hoạt động gần giống vậy
      0: https://store.planetcom.co.uk/collections/gemini-pda/product...
    • Samsung DeX
    • Đã thử Tails chưa? https://tails.net/
  • Tài liệu nói rằng có thể dùng cái này để truy cập từ xa vào server và workstation
    Những thứ như nâng quyền và sandboxing được xử lý thế nào?
    Tôi đang giả định ý là truy cập từ xa cho tài khoản người dùng, kiểu terminal server, chứ không phải quản trị server; đúng không?

  • Phần triển khai rất đẹp. Chỉ hơi thất vọng vì không có ứng dụng trình duyệt để inception xem Puter bên trong Puter

    • daedalOS làm được việc này: https://dustinbrett.com/
      Tất nhiên cũng chơi được Doom
    • Chỉ cần mở ứng dụng Puter là được: https://puter.com/app/puter
      Hoặc mở ứng dụng PuterPuter chứa chính nó cũng được: https://puter.com/app/puterputer
    • Về mặt kỹ thuật, nếu Puter được phục vụ với quy tắc CSP frame-src đúng, thì có thể mô phỏng bằng iframe
      Nhưng để có trải nghiệm trình duyệt đầy đủ thì cần backend và trình duyệt từ xa