外付けSSD+Immichで自宅写真サーバーを構築する完全手順
スマホの写真を自動バックアップし、家族と共有できるオープンソースのフォトサーバー Immich を
外付けSSDを保存先としてセットアップし、エクスポートまで行う手順をまとめます。
1. 概要
- OS: Linux (Ubuntu系を想定)
- ストレージ: 外付けSSD (1TB推奨)
-
機能:
- スマホアプリから自動バックアップ
- Web/アプリから写真閲覧
- 外付けSSDに直接保存
- 将来の移行に備えたエクスポート
2. 必要なもの
- Linux PC (同一LAN内でスマホと通信できること)
- 外付けSSD (1TB推奨)
- Docker & Docker Compose
- スマホ (iOS/Android) に Immich アプリ
3. 下準備
3.1 外付けSSDのマウント
sudo mkfs.ext4 /dev/sda1
sudo mkdir -p /mnt/family_share
sudo mount /dev/sda1 /mnt/family_share
UUID=$(blkid -s UUID -o value /dev/sda1)
echo "UUID=$UUID /mnt/family_share ext4 defaults 0 2" | sudo tee -a /etc/fstab
3.2 Docker & Compose
sudo apt update
sudo apt install -y docker.io docker-compose-plugin
sudo usermod -aG docker $USER
4. Immich セットアップ
mkdir -p ~/workspace/immich
cd ~/workspace/immich
curl -L https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml -o docker-compose.yml
curl -L https://github.com/immich-app/immich/releases/latest/download/example.env -o .env
.env を編集して外付けSSDをアップロード先に設定します。
UPLOAD_LOCATION=/mnt/family_share/immich_uploads
DB_DATA_LOCATION=./postgres
DB_USERNAME=postgres
DB_PASSWORD=好きな強いパスワード
DB_DATABASE_NAME=immich
DB_HOST=database
DB_PORT=5432
アップロード用ディレクトリ作成
sudo mkdir -p /mnt/family_share/immich_uploads
sudo chown 1000:1000 /mnt/family_share/immich_uploads
sudo chmod 755 /mnt/family_share /mnt/family_share/immich_uploads
外部ライブラリも参照したい場合は docker-compose.yml の immich-server に
volumes:
- ${UPLOAD_LOCATION}:/data
- /etc/localtime:/etc/localtime:ro
- /mnt/family_share:/external/family_share:ro
を追加。
起動:
docker compose up -d
5. 初期設定
ブラウザで http://<サーバーIP>:2283 へアクセスし管理ユーザーを作成。
6. スマホアプリ
- iOS/Androidで「Immich」アプリをインストール。
- サーバーURLに
http://<サーバーIP>:2283を入力。 - 管理者アカウントでログイン。
- 設定 → 自動バックアップをONにすると外付けSSDへ保存。
7. ユーザー追加
管理画面 → Administration → Users → Create User で家族用アカウント追加。
各ユーザーは独立したライブラリを持ちます。
8. データ保存場所
- アップロード写真:
/mnt/family_share/immich_uploads/upload/library/<user-id>/originals - 外部ライブラリ:
/mnt/family_share
9. バックアップ・移行
9.1 フォルダ丸ごと
rsync -a /mnt/family_share/immich_uploads /mnt/backup_drive/
docker exec -t immich_postgres pg_dumpall -U postgres > /mnt/backup_drive/immich_db.sql
9.2 公式エクスポート
Web UI → Settings → Data Export から元ファイル名・撮影日階層付きでZIP出力可能。
CLI:
docker compose exec immich_server npx immich-export --username 管理者メール --password '管理者パスワード' --output /data/export --albums --sidecar
出力は ${UPLOAD_LOCATION}/export に保存。
10. まとめ
- スマホ写真を自動バックアップ
- 外付けSSDに直接保存
- 家族ごとに独立アカウント
- 撮影日・ファイル名を維持したエクスポート