HN公開:3年でユーザー100万人を達成した後、「Internet OS」をオープンソース化した開発者
(github.com/HeyPuter)- Puterはユーザー100万人達成後に公開されたオープンソースのインターネットコンピューターで、セルフホスティング可能で、機能が豊富かつ高速で拡張可能に設計されている
- ユーザーはNotepad、Voice Recorder、Spreadsheet、Cameraのようなアプリを一か所で使い、仕事・創作・遊びをこなすオールインワンのデジタル環境を目指している
- 開発者はAI、Cloud Storage、Database、Serverless Workersを活用してWebアプリやゲームを作り、App Storeに配布してユーザーに届け、収益化できる
- 実行方法は、ローカル開発、Linux/macOS・Windows向けのセルフホスティング、ホスティングサービスであるputer.comの利用に分かれる
- リポジトリ全体とサブプロジェクト、モジュール、コンポーネントは、別途明記がない限りAGPL-3.0ライセンスに従い、含まれるサードパーティライブラリにはそれぞれのライセンスが適用される場合がある
Puterが提供するもの
- Puterは高度なオープンソースのインターネットコンピューターであり、セルフホスティング可能なように設計されている
- 目標は、機能が豊富で高速、かつ高い拡張性を備えた環境を提供すること
- ライブデモはPuter.comで提供されている
ユーザー向け環境
- Puterは、作業、創作、遊びに必要なアプリと機能を一つ屋根の下で提供することを目指している
- 例となるアプリは次のとおり
- ユーザー視点では、デジタル生活のためのオールインワンソリューションを目指している
開発者向けプラットフォーム
- Puterは、Webアプリやゲームの作成と配布に必要な機能を提供する
- 提供領域は次のとおり
- アプリを作成した後、App Storeに公開してユーザーに届け、収益化できる
実行とデプロイ方法
- ローカル開発は、リポジトリをクローンした後、
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に送信できる - リポジトリとそのサブプロジェクト、モジュール、コンポーネントは、別途明記がない限りAGPL-3.0ライセンスに従う
- リポジトリに含まれるサードパーティライブラリには、各ライブラリ独自のライセンスが適用される場合がある
翻訳ドキュメント
- READMEは複数言語の翻訳を提供している
- 翻訳一覧にはArabic、Chinese、English、French、German、Hindi、Japanese、Korean、Portuguese、Spanish、Vietnameseなどが含まれる
- 日本語訳ドキュメントはJapanese / 日本語として提供されている
1件のコメント
Hacker News の意見
誰かが Half-Life/Xash3D を Puter アプリとして上げていた: https://puter.com/app/half-life-c3j01ag3pyd
GitHub.io でホストされている以下のビルドを使っているように見える: https://github.com/Pixelsuft/hl
たとえば誰かが悪意あるパスワード窃取ツールのリンクを渡してきたらどうなるのかわからないし、権限システムがあるとよさそう
何年もブラウザ内デスクトップ系のデモをたくさん見てきたが、これは初めてで、いろいろな面で印象的
ついに円環が完成した。今度は当然、Puter の中でもブラウザを使いたくなる: ブラウザの中のブラウザ OS の中の OS の中の仮想マシン…
ユーザーにソフトウェアをインストールさせないために、マークアップ文書という概念をここまで酷使してこの結果に到達したというのは、気が遠くなる
利便性は人類における最も強力な力だ
ページがほとんど自分のサーバーにしか接続しないのは、Web アーキテクチャが持ち得た可能性に比べてはるかに小さく、過去を再び受け入れたにすぎない
Tim Berners-Lee の Solid のような試みは、素晴らしい第一歩に見える。PWA として実行できるさまざまな Mastodon クライアントも例であり反例でもある。ページはどこにでも接続できるが、結局は Fediverse サーバーが仲介して世界につないでくれる
RSS リーダーも同じで、世界とつながるために自分のホームへ接続する。代わりにクライアントが直接外へ伸びていくこともできそうで、その場合、読む・閲覧する・お気に入りを追跡するといった活動は再びホームへ送るか、別の方法で保存する必要がある
個人的に 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 の 1 行が追跡しにくい変なことをして DOM やイベントハンドラを壊す心配をしなくていいところだ
React も決してミスを防いでくれる道具ではないし、ほとんどの場合、追加の複雑さを引き受けるほどの価値があるとは思わない
実際に HTML 要素で作られているなら印象的だ
しばらく夢中でいじって遊んでいた。VSCode で拡張機能をインストールしているとき、リポジトリリンクが小さなブラウザのインセプションとして開かなかったので戸惑ったが、その頃には完全にそうなると期待していた
本当によくできている
VSCode 統合を作るにはかなり多くの作業が必要なので、コミュニティの助けになるといい
気に入った
~がホームディレクトリにマッピングされるとよさそう。例: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 メモリを持っていろいろなキオスクに行き、自分のカスタムキーのおかげで標準 OS が自分専用のインスタンスを呼び出す、という夢を見ていた
これはその機能に近そうで、楽しめるだけの徹底したデモが含まれている点が本当に素晴らしい。これほど多くの時間と情熱を注いで作って公開したのも素敵だし、オープンソースにしたことも、誰かがこのサイトをデフォルトで表示するキオスクを作るきっかけになるかもしれない
後にこうした「Web デスクトップ」の 1 つを作ることになった者として、BartPE のようなものがある程度のインスピレーションになったのかもしれない
必要なのは、YubiKey のようなセキュリティ識別子で全パーツをつなぐことと、十分なインターネットだけ
Parsec のような VDI ツールである程度は可能だが、ローカルハードウェアを活用できればさらによい
これを使うまともな用途を本当に見つけたい[0]。USB-HDMI と組み合わせれば、ほぼ似たように動作するかもしれない
0: https://store.planetcom.co.uk/collections/gemini-pda/product...
ドキュメントには、これをサーバーとワークステーションの リモートアクセスに使えると書かれている
権限昇格やサンドボックス化のようなものはどう扱うの?
サーバー管理ではなく、ターミナルサーバーのようにユーザーアカウント向けのリモートアクセスを意味していると想定しているけど、合ってる?
実装が美しい。ただ、Puter の中で Puter を見るための インセプション用ブラウザアプリがなくて落胆した
もちろん Doom もプレイできる
あるいは自分自身を含む PuterPuter アプリを開いてもいい: https://puter.com/app/puterputer
frame-srcCSP ルールで提供されていれば iframe でそれらしく再現できるただし完全なブラウザ体験を提供するには、バックエンドとリモートブラウザが必要になる