高性能な AI 写真管理アプリ PhotoPrism を、NVIDIA Jetson Orin Nano(ARM64)にインストールしてみました。
本記事では、Docker Compose + MariaDB を使った手順を、日本語でわかりやすく解説します。
📌 PhotoPrism とは?
PhotoPrism は、Google フォトのように画像を整理・検索できるオープンソースWebアプリです。
- タグ付け、AI分類、地図表示に対応
- 緯度経度やタグで画像検索可能
- REST APIで外部アプリから利用可能
- Dockerで手軽に導入可能(ARM64対応)
1. 前提条件
- Jetson Orin Nano(8GB推奨)
- OS: Ubuntu 20.04 / 22.04 (JetPack含む)
- インターネット接続
- sudo権限のあるユーザー
2. Docker のインストール
まずは Docker をインストールします。
sudo apt remove docker docker-engine docker.io containerd runc
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo \
"deb [arch=arm64 signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER
newgrp docker
3. Docker Compose のインストール
Jetsonでは apt 版が古いので最新版を直接取得します。
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
4. 作業ディレクトリ作成と設定
mkdir ~/photoprism
cd ~/photoprism
wget https://dl.photoprism.app/docker/compose.yaml
5. compose.yaml の変更ポイント
-
管理者パスワードを安全な値に変更
PHOTOPRISM_ADMIN_PASSWORD: "安全なパスワード"
-
日本語UIに設定
PHOTOPRISM_DEFAULT_LOCALE: "ja" PHOTOPRISM_PLACES_LOCALE: "ja"
-
データ保存先を絶対パスで指定
volumes: - "/data/photoprism/originals:/photoprism/originals" - "/data/photoprism/storage:/photoprism/storage"
-
MariaDBのパスワードも同じく変更(PhotoPrism側と一致させる)
6. 起動
docker-compose pull
docker-compose up -d
ブラウザで以下にアクセス:
http://<JetsonのIP>:2342
ユーザー名 admin
、設定したパスワードでログインします。
7. API の利用例
画像一覧を取得:
curl -u admin:パスワード http://<Jetson-IP>:2342/api/v1/photos
まとめ
これで Jetson Orin Nano 上に PhotoPrism + MariaDB が稼働し、
緯度経度やタグでの画像検索、REST API利用も可能になります。