hikihashiのブログ -5ページ目

hikihashiのブログ

主に購入したガジェット系の感想と、カメラで撮った写真の感想を気ままに書いています。

 前回Mac miniをNASを使って、外出先からMac miniのスリープを解除できるようにしたのですが、なんとかする方法は見つかったものの欠点があったので、そのことについて書いていきます。

 

(前回)

 

 

 最近Mac miniに自分もローカルLLMなるものを導入し、Dockerを使って「Open WebUI」というのを作って外出先からMac miniに入れたローカルLLMをブラウザ経由で使えるようにしました。

 

 しかし、Mac miniのスリープを解除して「Open WebUI」に繋げるところまではできるのですが、途中で読み込みが止まってしまい、接続が途切れたという感じのエラーメッセージが表示されました。

 

 

 Mac miniをスリープ解除しても、ロック画面状態だと少し時間が経つとすぐにスリープに入ってしまうのが原因っぽく、設定で変えられないかを調べてみましたが、残念ながらわかりませんでした。

 

 なので、やっぱりスリープにしない設定でするしかないと思ったのですが、Geminiに聞いて実際に試してみたところ、SSH接続中はスリープにならないことがわかりました。

 

 (前前回)

 

 前前回でiPhoneからAntigravity CLIを起動した場合、ソフトウェアキーボードでは操作しにくいという問題はあれど、普通に使えていたのですが、この時はMac miniは確かにスリープにならずに使えていたことを思い出しました。

 

 ただ、SSH接続していても長時間経つとスリープになる可能性はあり、毎回接続をして切る必要があるため、根本的な解決にはなっていないかもしれませんが、すぐにスリープになってしまうことは防げたので良かったかなと思います。

 

 ひとまずはスリープにならなくなったので、ショートカットアプリで、前回作った「WoLWeb」をブラウザで開いて手動で起動、数秒経つと「a-Shell」のアプリが起動し、Mac miniに繋がるような流れを作ったのですが、もうちょっと簡潔にする方法があればと思います。

 

 もしかしたら他に方法があり、Mac miniのスリープ状態への移行までの時間を長くすることができるかもしれませんが、使う時だけスリープを解除状態を維持したいだけなので、さすがにそんな細かい設定はできないかもしれないのでこのままで良いかと思うことにしました。

 

 

 とりあえず、今月は近いうちにお出かけするので、久しぶりに写真を撮りに出かけるのを楽しみにし、今回はここで終わろうと思います。

 前回はMac miniにインストールしたAntigravity CLIをiPhoneでも使えるように設定を行っていました。

 

 

 無事に設定は終わったのですが、スリープ中のMac miniには接続できないという当たり前の問題が発生しました。

 

 

 

 なので、今回はMac miniをNAS経由で外出先からでもスリープを解除できるようにしてみたので、そちらについて書いていきます。

 

 

 最初、外からスリープを解除しようとして失敗ばかりだったため、決められた時間スリープを無効にできるアプリ「Amphetamine」を入れたものの、結局諦め切れずに色々と試してみることにしました。

 

 最終的にNASのDockerを使って、Wake-on-Lan(WoL)という遠隔でPCのスリープを解除できるコンテナ「WoLWeb」を作ることで、何とか上手くいきました。

 

 

 Geminiに聞きながらコンテナを作ったのですが、最初にDockerのファイルの中に「wolweb」のファイルを作り、「devices.json」というファイルをその中に作る必要があるみたいです。

 

 

 上のスクショは小さくて見づらいのですが、①がDockerファイルで、②はその中に新規フォルダ「wolweb」を作成し、③でさらにその中に「devices.json」という新規フォルダを作成。

 

 ④は「/volumes1/docker/wolweb/devices.json」というファイルの場所が必要になることを覚えておくために残しています。

 

 それからPortainerのStackで入力するコードをGeminiに作ってもらい、そちらを入力し、一部自分の環境に合わせて修正したら完成。

version: "3"
services:
  wolweb:
    container_name: wolweb
    image: "ghcr.io/sameerdhoot/wolweb"
    restart: always
    volumes:
      # ここをホストマシンの絶対パスに書き換えます
      - /home/user/wolweb/devices.json:/wolweb/devices.json
    network_mode: host
    environment:
      WOLWEBHOST: "0.0.0.0"
      WOLWEBPORT: "8089"
      WOLWEBVDIR: "/"
      WOLWEBBCASTIP: "192.168.1.255:9" # ご自身の環境に合わせる

 

 コンテナが問題なく起動できていたら、http://<NASのIPアドレス>:8089/をブラウザで開きます。

 

 

 そうするとこのような画面が開くので、上にある+NEWをクリックし、Device名・MACアドレス・Broadcast IP・Interfaceを入力したら完成なのですが、ここでもなかなか上手くいかず1時間ぐらい何が間違っているのか悩みました。

 

 Mac miniはUSB LANアダプターでネットに繋いでいるため、そちらのMACアドレスを入力していたのですが、USB LANアダプター経由ではスリープ解除できないみたいで、Mac miniに元々あるLANポートにケーブルを繋ぎ、そちらのMACアドレスを調べて入力したらスリープ解除できるようになりました。

 

 TailscaleでVPN接続を行い、上のブラウザを開いて「WAKE-UP」と書かれた青いアイコンをクリックしたところ、また失敗しないかが不安でしたが、なんとか無事にスリープが解除され、外でもiPhoneを使ってMac miniにSSH接続ができるようになりました。

 

 

 

 今回も自己満足にはなりますが、Mac miniをスリープ無効で使うのは抵抗があったので、外からスリープを解除できる方法があり、ちゃんと使えるようになって良かったと思いつつ、今回は終わろうと思います。

 最近Gemini CLIが6月に終了し、Antigravity CLIに切り替わることを知りました。

 

 Geminiアプリばかりで、Gemini CLIはほとんど使っていなかったのですが、何かやりたくなった時のために、Antigravity CLIを入れてみることにしました。

 

 

 

 UGREENのNAS「DH2300」に入れてみたりしたのですが、どうもCPUが非対応らしく、起動ができなかったので、諦めてMac miniに入れることにしました。

 

 まずはMac miniのターミナルを起動し、コマンドを入力。

curl -fsSL https://antigravity.google/cli/install.sh | bash

 

 ただ、これだけだと起動しようとすると上手くいかず、調べるとインストールしただけだとパスが通っていないらしく、Geminiに聞くと下記のコマンドを入力してくださいと教えてくれました。

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc

 

 設定を反映させるために次のコマンドも入力するように教えてくれました。

source ~/.zshrc

 

 そうすると無事にAntgravity CLIが起動するようになり、Googleアカウントでログインを求められるので、ログインしたところ、無事に使えるようになりました。

 

 

 

 Mac miniにAntigravity CLIをインストールしたら、次にiPhoneからMac miniに接続できるように設定をしていきました。

 

 最初はMac miniのリモートログインの設定をオンにする必要があるらしく、設定アプリから「一般」を開いて、「共有」の中にある「リモートログイン」をオンにしました。

 

 次にSSH公開鍵認証の方法ですが、以前作った鍵があり、どうもそれが使えるらしいのですが、どうすればいいのかわからず、時間がかかりました。

 

 iPhoneの「a-Shell」アプリを開き、下記のコマンドを入力すると鍵が表示されるとのことですが、最初Geminiが教えてくれたコマンドだと上手くいかず、~/.sshとなっていたのですが、.sshにしたら上手くいきました。

cat .ssh/id_ed25519.pub

 

 そうすると画面にssh-ed25519 AAAA…というような文字列が出るので、それが鍵とのこと。

 

 Mac miniのターミナルを開いて、公開鍵の登録を行いました。

 

 .sshのファイルは以前作ったとは思うのですが、ファイル名が違うと登録できない可能性があるため、下記のコマンドを入力。

mkdir -p ~/.ssh

 

 それから、iPhoneで表示したSSH公開鍵を下記のコマンドを使って登録したところ、SSH接続時にパスワードが不要になりました。

echo "コピーした公開鍵の文字列" >> ~/.ssh/authorized_keys

 

 

 最後にiPhoneから起動できるかの確認のため、Mac miniにSSH接続を行いました。

 

 リモートログインをオンにすると、SSH接続ができるようになっているので、下のコマンドをiPhoneの「a-Shell」アプリで入力して接続を試みました。

ssh ユーザー名@PCのIPアドレス

 

 最初の一回だけ確認みたいなのがありましたが、公開鍵認証のおかげでパスワードなしでも接続されるようになりました。

 

 接続後にAntigravity CLIの起動コマンドである「agy」を入力したところ、無事に起動できるようになりました。

 

 

  iPhoneで最初にログインした時もGoogleアカウントの認証を求められ、表示されるURLを使って認証するのですが、SafariだとURLをコピペしても認証エラーして駄目かと思いましたが、Chromeではちゃんと認証できたので、無事にAntigravity CLIをiPhoneでも起動できるようになりました。

 

 

 

 ショートカットアプリの設定を行い、アクションボタンで起動できるようにしたので、次回からはボタン一つでiPhoneからAntigravity CLIも起動できるようになり、今回は満足したのでここで終わろうと思います。