前回は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をスリープ無効で使うのは抵抗があったので、外からスリープを解除できる方法があり、ちゃんと使えるようになって良かったと思いつつ、今回は終わろうと思います。


