Closed1

Firebase Studio VNC 使い方

黒ヰ樹黒ヰ樹

https://zenn.dev/tkithrta/articles/7a784d521bfe05

この記事で紹介したDevPodスクリプトを変更

mkdir -p bin desktop
cat <<EOF > .idx/dev.nix
{ pkgs, ... }: {
  channel = "stable-24.05";
  packages = [
    pkgs.zip
  ];
  env = {};
  idx = {};
  services.docker.enable = true;
}
EOF
cat <<EOF > desktop/.devcontainer.json
{
  "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
  "features": {
    "ghcr.io/devcontainers/features/desktop-lite:1": {
      "password": "noPassword"
    }
  },
  "forwardPorts": [
    6080
  ],
  "portsAttributes": {
    "6080": {
      "label": "desktop"
    }
  },
  "containerUser": "root",
  "remoteUser": "root"
}
EOF
curl -Lo bin/devpod https://github.com/loft-sh/devpod/releases/download/v0.6.15/devpod-linux-amd64
chmod 755 bin/devpod
export PATH=$PWD/bin:$PATH
devpod provider add docker
devpod provider set-options -o "DOCKER_HOST=$DOCKER_HOST"
devpod ide set-options openvscode -o VERSION=v1.99.3
devpod context set-options -o EXIT_AFTER_TIMEOUT=false
# DevPod起動前にFirebase Studioを再起動してdev.nixの設定を反映する
devpod up desktop --ide=openvscode
# Open VS Code使わないならNoneにしてSSH接続する
# devpod up desktop --ide=none
# devpod ssh desktop

あとはecho "https://6080-$WEB_HOST"にアクセスするだけ

novnc

以下変更開所

  • emptyからdesktopへ変更(何でもいい)
  • featuresにdesktop-liteを追加
  • passwordをnoPasswordにする
    • noPasswordにしないとアクセスできない
    • noPasswordにしてもFirebase Studioの認証でアクセスするためPublicにしない限り安全
  • forwardPortsとportsAttributesを設定
    • desktop-liteのドキュメントに書いてあるやつそのままコピペ

https://github.com/devcontainers/features/tree/main/src/desktop-lite

dilloで動作確認

$ sudo apt-get update
$ sudo apt-get install -y --no-install-recommends dillo
$ dillo

dillo

最新のdilloをビルドできるか確認

$ sudo apt-get update
$ sudo apt-get install -y --no-install-recommends gcc g++ autoconf automake make zlib1g-dev libfltk1.3-dev libssl-dev libc6-dev libpng-dev libjpeg-dev libwebp-dev libbrotli-dev
$ git clone https://github.com/dillo-browser/dillo.git
$ cd dillo
$ ./autogen.sh
$ mkdir build
$ cd build
$ ../configure --prefix=/usr/local
$ make
$ sudo make install
$ dillo
# /usr/local/bin/dillo

webp

ただnoVNCがnon-root userで立ち上がるのでrootでmountしているDevcontainerのworkspacesで何もできなくて困った
desktop-liteのusernameをrootにすれば反映されるがFluxboxの挙動がだいぶ怪しい

とりあえず以下暫定対処

$ sudo -i

noVNCのスケーリングモードを「リモートでリサイズ」にすると全画面表示が反映されることをクローズしてから判明

scaling

このスクラップは2ヶ月前にクローズされました