HN ra mắt: Nhà phát triển mã nguồn mở “Internet OS” sau khi đạt 1 triệu người dùng trong 3 năm
(github.com/HeyPuter)- 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
- Phát triển cục bộ bằng cách clone repository rồi chạy
npm install,npm start- Sau khi chạy, Puter sẽ mở tại
http://puter.localhost:4100
- Sau khi chạy, Puter sẽ mở tại
- Tự host trên Linux/macOS bắt đầu bằng lệnh sau:
curl -fsSL https://puter.com/selfhost | sh
- Tự host trên Windows dùng lệnh sau trong PowerShell:
irm https://puter.com/selfhost?os=windows | iex
- Tài liệu tự host chi tiết hơn có tại Self-Hosting Puter
- Dịch vụ hosting được cung cấp tại puter.com
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
Ý 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
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
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
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ế
Sự tiện lợi là sức mạnh lớn nhất của nhân loại
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
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ệuDự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ọiputer.jsnhư một “backend”Không cần bận tâm tới xác thực người dùng vì
puter.jssẽ 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ánTô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/
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
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
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
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 ~/DesktopKhó 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
cattrong 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ủacatCũng cần sao chép-dán từ clipboard vào instance Puter
Cài Python ở đây như thế nào?
Nếu cuối file không có dòng mới,
catsẽ bắt đầu viết prompt ngay sau dòng cuối cùng; đây là hành vi đúng như mong đợi trongshhoặcbashSau 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ổ đó
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 tabMọ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
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 đó
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
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...
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
Tất nhiên cũng chơi được Doom
Hoặc mở ứng dụng PuterPuter chứa chính nó cũng được: https://puter.com/app/puterputer
frame-srcđúng, thì có thể mô phỏng bằng iframeNhưng để có trải nghiệm trình duyệt đầy đủ thì cần backend và trình duyệt từ xa