モチベ
- Google Photo?Amazon Photo?サブスクでお金溶かすの嫌じゃない?
- 自分のデータは自分で所有したい(ローカルで持ちたい)
使用するソリューション
-
- AIベースドなオープンソース写真管理アプリ。
細かいことは先人たちの記事を参照>>
-
Docker
- 上記起動のために必要。yamlを指定してcomposeするだけ。
-
Fedora Surver
- Linuxローカルサーバー(自宅のWindowsでVirtualBoxを使ってFedora Surverを起動)
結局サーバースペックは8コアCPU,16GBメモリほど割り当てた。PhotoPrismの要求メモリスペックは4GB。
1. Fedora ServerにDockerをインストールする
コマンド例
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker
ポイント
-
dnf-plugins-core
: DNFの拡張機能パッケージ -
config-manager --add-repo
: Docker公式リポジトリ追加 -
docker-ce
などのパッケージをインストール -
systemctl enable --now docker
: Dockerデーモンの自動起動設定&起動 -
usermod -aG docker $USER
: ユーザーをdockerグループに追加しsudoなしでdockerコマンドが使えるように -
newgrp docker
: グループ変更を反映
2. Dockerが正常に動作しているか確認する
docker run hello-world
- Dockerのテストイメージを起動し、正しく動作しているかを確認。
3. VirtualBoxでWindowsの共有フォルダをLinuxにマウントする
VirtualBox設定
- VMの設定 → 共有フォルダ → Windowsの写真フォルダを追加(自動マウント有効)
1. VirtualBoxの共有フォルダー設定
-
VirtualBoxマネージャーで対象VMを選択
-
「設定」→「共有フォルダー」
-
「共有フォルダーの追加」ボタン
-
Windows側の参照したいフォルダーを指定
-
「自動マウント」「永続化」チェック入れる(便利)
-
設定保存
2. Linux上で共有フォルダーの確認とマウント
前提
Virtual BoxのGuestAditionがインストールされ共有フォルダ利用可能になっていること
2-1. VirtualBoxのGuest Additions ISOをマウント
-
VirtualBoxのメニューから
「Devices」→「Insert Guest Additions CD Image…」
2-2. マウントポイント作成&ISOマウント
sudo mkdir /mnt/cdrom
sudo mount /dev/cdrom /mnt/cdrom
2-3. Guest Additionsインストーラを実行
sudo /mnt/cdrom/VBoxLinuxAdditions.run
2-4. 成功メッセージが出たら再起動
sudo reboot
-
共有フォルダや画面リサイズが効いていればOK。
-
自動マウント設定してたら /media/sf_<フォルダー名> にマウントされてるはず
-
手動でマウントするなら(例):
権限の問題に注意
-
VirtualBoxの共有フォルダーはデフォルトで root 所有、vboxsf グループがアクセス権持つ
-
普段使うユーザー(例:kei)を vboxsf グループに追加しないとアクセス拒否される
sudo usermod -aG vboxsf kei
- 変更後はログアウト・ログインか再起動必要
Linux側でのマウント
sudo mkdir -p /media/shared
sudo mount -t vboxsf フォルダ名 /media/shared
-
vboxsf
はVirtualBox共有フォルダのファイルシステム -
/media/shared
はマウントポイント
3. PhotoPrismをDocker Composeで起動する
docker-compose.yml 例
version: "3"
services:
photoprism:
image: photoprism/photoprism:latest
restart: unless-stopped
ports:
- 2342:2342
environment:
PHOTOPRISM_ADMIN_PASSWORD: "yourpassword"
PHOTOPRISM_HTTP_HOST: "0.0.0.0"
PHOTOPRISM_DEBUG: "false"
volumes:
- ./photoprism/storage:/photoprism/storage
- /media/shared:/photoprism/originals:ro
起動コマンド
sudo docker compose up -d
-
volumes
で共有フォルダをPhotoPrismの写真保存先にマウント -
-d
でデタッチドモード(バックグラウンド実行)
4. PhotoPrismにブラウザからアクセス
-
http://<サーバーIP>:2342
にアクセスしログイン
最後に
Good
- ローカルでGooglePhotoライクな写真管理環境構築に成功。
- Talescale使ってVPNで繋いであげることで外出先からもアクセス可能。
Bad
- Virtual Boxだとできることが限られてくるため、VMWareで構築すればよかった。
- 個人の写真の容量がデカすぎて、80GBほどマシン容量を割り当てている(今後不足するのは確実)
- 構築コスト、維持コスト考えたら、サブスクでGoogle Photo使ったほうが安いんじゃ、、、(ロマンなので問題なし)。