ブラウザ上で動くデスクトップOS puter をdocker起動する
Hacker Newsを見ていたら、https://news.ycombinator.com/item?id=39597030という投稿がありリンクをクリックしてみるとgithubのページに飛びました。
READMEには"Internet OS and Desktop Environment in the Browser!"と書かれています。
$ npm install
するだけでブラウザでデスクトップOSが動く?ようです。
下記はdockerイメージを持ってきて、docker compose で起動する方法です。
docker imageを持ってくる方法
- A. puterを起動するマシン(Linux)
- B. puterをブラウザで表示するマシン(sshクライアントが必要 LinuxやWindowsなど)
下準備としてBからAに対してSSH接続ができるようにしておきます。
# A.のマシンで
$ cd ~
$ mkdir puter_dir
$ git clone https://github.com/HeyPuter/puter
$ cd puter
$ git reset --hard 6b4a19e12a115be2c0e323d17340ab2ce2b6b025
$ cd ../
$ mkdir -p puter/config puter/data
$ sudo chown -R 1000:1000 puter
$ wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
## puter 起動
$ docker compose up -d
## 起動したか確認
$ docker compose logs -f
## 起動していなかったら
$ docker compose down
$ sudo chown -R 1000:1000 puter
## 再度起動
$ docker compose up -d
puterが起動したらBのマシンの~/.ssh/config
に下記を記述てローカルフォワーディングをできるようにします。
# マシンBの~/.ssh/config
Host machine-a-nantyara
HostName <A.のマシンのIP>
Port 22
ServerAliveInterval 60
LocalForward 4100 localhost:4100
保存したら$ ssh machine-a-nantyara
でマシンBからマシンAにsshで接続します。
マシンBでブラウザを立ち上げ、http://puter.localhost:4100/
と入力するとPuterOSの画面が表示されます。
以前の方法(この方法だと起動しなくなりました。。。)
# dockerを使う方法
$ git clone https://github.com/syagawa/puter-docker-compose.git
$ cd puter-docker-compose
$ docker compose build
$ docker compose up -d
# 公式の方法(node.jsがインストールされてる必要アリ)
$ git clone https://github.com/HeyPuter/puter
$ cd puter
$ npm install
$ npm start
どちらの方法でもlocalhostの4000番ポートで起動します。
ブラウザで<起動したマシンのIP>:4000
を入力すると冒頭の画面が表示されます。
右上のユーザーアイコンからアカウントを作成できます。
できること
エクスプローラ、ターミナル、ペイントなどのアプリがあります。
VSCode(のOSS版?)も入っているようです。
アカウントを作成してログインをするとputer.comでも同様の環境で使用できる。 つまり、ローカル側とputer.com側で同じデスクトップ環境を使用できることになります。
ローカル側のデスクトップにファイルを作ると、puter.com側のデスクトップにもファイルが表示されます。
できないこと
ブラウザも入っているのかなと思いましたが、そもそもブラウザで表示するのでブラウザは入っていないです。
また、ターミナルもLinuxぽい動きはするもののパッケージのインストールやsshなどは動かないようです。
何に使えるか?
"デスクトップOS"として見るとできないことが気になりますが、puter.comと同期することで公式githubでも言及されているようにDropboxみたいな使い方ができそうです。
さらに、このデスクトップUI環境そのものをウェブアプリとして公開するということもできそうです。
あと、JavaScriptで動いているとのことなのでputerの動きをChrome開発者ツールでデバッグするだけでWeb開発の勉強になりそうです。
更新ログ
- 2024/08/19 起動方法を追記