Windows11にWSL2でImmichをインストール

これまでも紹介してきたように、ImmichはGoogleフォトのような既存の画像管理サービスを置き換えられるくらい便利なセルフホストサービスです。これは、WindowsのWSL2環境でも導入可能です。Windows上で導入するメリットとしては、Immichの画像バックアップに、クラウドサービス公式のツールが使えるという点。rcloneを使わなくても手軽にバックアップが行えるようになります。Ubuntu上で動かすのに比べると余分なリソースは消費してしまいますが、余ったWindowsマシンがあるならば有効ではないでしょうか。

WSL2を導入する

WSL2の導入は簡単で、「ターミナル(管理者)」または「PowerShell」を「管理者として実行」し、次のコマンドを実行するだけです。

wsl --install

インストール完了後、Windowsを再起動するだけで、Linux機能とUbuntuが自動インストールされます。Ubuntuのコンソール画面が自動で開くので、ユーザー名とパスワードを設定します。

これで、WSL2の環境は整い、Ubuntuで行ってきたことがそのまま行えます。WindowsのエクスプローラからもUbuntu環境が見えます。

まずは外部からもアクセスしやすいように、Tailscaleを導入したり、SSHを使えるようにします。なお、以前はsystemdが無効になっているので、最初にsystemdを有効化する必要があったようですが、現在では有効になっているようです。

Tailscaleインストール

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --accept-dns=true

SSHサーバのインストール

sudo apt update && sudo apt install openssh-server -y

SSHサーバが自動起動するように設定します。

# 自動起動を有効化
sudo systemctl enable ssh

# 今すぐ起動
sudo systemctl start ssh

TailscaleとSSHが自動起動しているか確認

systemctl is-enabled ssh tailscaled

これで外部のパソコンからもSSHで接続出来るようになり、いつも通り作業出来るはずです。

Windows再起動時もWSL2が自動起動させる

Windowsのタスクスケジューラを使います。

タスクスケジューラの設定:

  1. Win+Rtaskschd.msc
  2. 「タスクの作成」
  3. 各タブを以下のように設定:

全般タブ:

  • 名前:WSL2 AutoStart
  • 「ユーザーがログオンしているかどうかにかかわらず実行する」
  • 「最上位の特権で実行する」にチェック

トリガータブ:

  • 「新規」→「スタートアップ時」

操作タブ:

  • 「新規」
  • プログラム:C:\Windows\System32\wsl.exe
  • 引数:-d Ubuntu

条件タブ:

  • 「AC電源に接続している場合のみ」のチェックを外す

これでWindows起動時にWSL2が自動起動し、systemdが有効なのでTailscaleとSSHも自動で立ち上がります。ちなみに、将来的なことを考えると -u root にしておくのも一つの手ですが、systemdが有効な環境では、rootが必要なサービスはsystemdのユニットファイルで管理するのが正しいやり方で、タスクスケジューラ側でrootを使うより、サービスごとにsudo systemctl enableで自動起動を設定するほうが管理しやすいので、ひとまずタスクスケジューラは -d Ubuntu のまま(WSL2を起動するだけ)にし、各アプリは sudo systemctl enable <サービス名> で個別に自動起動設定の予定です。

OneDriveを有効化してフォルダを作成

Windows側でOneDriveを有効にしたら、あらかじめ、Immichで同期する、元画像の保存先を作成しておきます。ここでは「immich-upload」というファイル名にしています。

C:\Users\user\OneDrive\immich-upload\  

作成後、フォルダを右クリック し、「常にこのデバイス上に保持する」を選択しておきます。

Immichをインストールする

まずはimmichで必要なファイルをダウンロードします。

cd ~
mkdir -p ~/immich
cd ~/immich
wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env

.envを編集

続いて、保存先の設定を変更します。

nano ~/immich/.env

UPLOAD_LOCATION だけ変更します。

UPLOAD_LOCATION=/mnt/c/Users/user/OneDrive/immich-upload
DB_DATA_LOCATION=./postgres

Immich起動

設定ファイルの編集が終わったらImmichを起動します。

cd ~/immich
docker compose up -d

全コンテナが Up になっていれば問題ありません。

docker compose ps

Webブラウザでhttp://localhost:2283 にアクセスして表示されればOKです。
Immichの画像データ等はOneDrive内に作成しているので、写真を保存すればすぐに同期されます。

GoogleフォトやAmazonフォトでバックアップ設定

Windows上で認識出来る場所に画像データがあるので、GooglegフォトやAmazonフォトへのバックアップも簡単です。それぞれ専用クライアントがあるので、それをインストールして、Immich内の画像フォルダを対象に指定すれば、画像データが保存されればすぐにバックアップされます。
rcloneを使う方法と比べると、リアルタイムでバックアップされる点と、公式ツールを使っている点がメリットと言えますね。