今回はQNAPのNAS、TS-216Gに写真アプリ「Immich」を入れてみたので、そのことについて書いていこうと思います。
前半はTS-216Gの動作を軽くすることで、QuMagieのサムネイル表示は速くなるかを試すまでの過程について、後半に「Immich」を入れてみることにした理由を書いていこうと思います。
TS-216Gは今までCPU使用率やメモリの使用量から屋外カメラの録画がメインで、それ以外は軽めの操作だけにしていました。
しかし、いくら何でも重すぎると思い、設定を色々と変更することにしました。
(設定を見直した後のCPU使用率とメモリ使用量)
録画アプリを「QVR Pro」から「QVR Surveillance」に変更し、色々と設定を見直したところ、だいぶ改善され、CPU使用率は10%〜30%になり、メモリの使用量も50%を切るようになりました。
色々と設定を見直してみて、TS-216Gが重くなった原因ですが、モーション検知をアプリ側で検知するようにしていたのですが、それをカメラ側に変更したところ一気に軽くなりました。
アプリ側で検知していた理由は屋外カメラの動体検知をオンにすると雨や風、虫などの動作に検知してしまうため、雨の強い日など通知が多く、解除していました。
しかし、それによりCPUの使用率が多くなっていたみたいなので、カメラの動体検知をオンに戻し、検知感度を落とすことにしました。
次にメモリの使用量が多いAI関連のアプリの削除を行ったところ、上の画像のようにCPUの使用率は10%を切り、メモリの使用量も50%以下で安定するようになりました。
これならQuMagieも速くなるのではと期待して開いてみましたが、結果は惨敗。
重かった頃と比べると速くなりましたが、DH2300の速度を知ってしまうと遅すぎて、使えなくはないけどギリギリ我慢できるレベルにしかなりませんでした。
せっかく動作を軽くしたので、QuMagieのことは諦めて別のことをすることにしました。
最近DH2300でDockerを使ったコンテナの作り方を覚えたのですが、TS-216Gにもコンテナを作るアプリがあるのを思い出しました。
QVR Proを入れるときに一緒にインストールされる「Container Station」を使い、早速コンテナを作成しました。
最初はDH2300にも入れた「CouchDB」や「Tailscale」などを入れて、DH2300のDockerアプリを消そうかなと思っていましたが、Dockerを使って入れられる写真アプリ「Immich」の存在を知り、そちらをいれることにしました。
昨日は一日フルに使い、Immichの入れ方をChatGPTやClaudeを使い調べていましたが、途中ChatGPTが上限に達しました。
ChatGPTにDocker Composeを作ってもらい、TS-216Gでもちゃんと動作するようにエラーが起こるたびにコピペして回答をもらい、作り直してようやく完成しました。
完成した下記のDocker ComposeをPortainerのStacksに入力したら、とりあえず動作しました。
services:
immich-server:
container_name: immich
image: ghcr.io/immich-app/immich-server:release
command: ['start.sh', 'immich']
volumes:
- /share/・・・/・・・:/usr/src/app/upload
- /share/⚫︎⚫︎⚫︎:/external/⚫︎⚫︎⚫︎:ro
- /etc/localtime:/etc/localtime:ro
environment:
IMMICH_LOG_LEVEL: warn
ENABLE_MACHINE_LEARNING: "false"
DISABLE_VIDEO_TRANSCODING: "true"
THUMBNAIL_GENERATION_CONCURRENCY: 1
TZ: Asia/Tokyo
IMMICH_HOST: 0.0.0.0
IMMICH_PORT: 2283
DB_HOSTNAME: database
DB_USERNAME: ⚫︎⚫︎⚫︎
DB_PASSWORD: ⚫︎⚫︎⚫︎
DB_DATABASE_NAME: ⚫︎⚫︎⚫︎
REDIS_HOSTNAME: redis
ports:
- 2283:2283
depends_on:
- redis
- database
restart: unless-stopped
immich-microservices:
container_name: immich_microservices
image: ghcr.io/immich-app/immich-server:release
command: ['start.sh', 'microservices']
volumes:
- /share/・・・/・・・:/usr/src/app/upload
- /share/⚫︎⚫︎⚫︎:/external/⚫︎⚫︎⚫︎:ro
- /etc/localtime:/etc/localtime:ro
environment:
ENABLE_MACHINE_LEARNING: "false"
IMMICH_WORKERS: 1
TZ: Asia/Tokyo
DB_HOSTNAME: database
DB_USERNAME: ⚫︎⚫︎⚫︎
DB_PASSWORD: ⚫︎⚫︎⚫︎
DB_DATABASE_NAME: ⚫︎⚫︎⚫︎
REDIS_HOSTNAME: redis
restart: unless-stopped
redis:
container_name: immich_redis
image: redis:6.2-alpine
command: redis-server --maxmemory 64mb --maxmemory-policy allkeys-lru
restart: unless-stopped
database:
container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0
environment:
TZ: Asia/Tokyo
POSTGRES_PASSWORD: ⚫︎⚫︎⚫︎
POSTGRES_USER: ⚫︎⚫︎⚫︎
POSTGRES_DB: ⚫︎⚫︎⚫︎
POSTGRES_SHARED_BUFFERS: 128MB
POSTGRES_WORK_MEM: 4MB
POSTGRES_MAINTENANCE_WORK_MEM: 64MB
volumes:
-/share/・・・/・・・/.pgdata:/var/lib/postgresql/data
restart: unless-stopped
自分はコンテナの作り方を理解して作っているわけではないため、これで正しいのかも不明ですが、動作はします。
Volumeの場所は人によって違うと思いますが、共有フォルダに保存する場合は/share/共有フォルダ名/共有フォルダの中にあるフォルダ名、らしいです。
外部ライブラリという今まで保存した写真のデータを使用する場合にはVolumeの欄にある- /share/⚫︎⚫︎⚫︎:/external/⚫︎⚫︎⚫︎:roの⚫︎⚫︎⚫︎のところに共有フォルダ名を入れれば良いみたいです。
多分細かく設定できそうですが、面倒なのと、:roというのを入れないと間違えてデータを削除してしまう危険性が高くなるらしいので、入れてます。
コンテナができてもサーバーに繋がらない問題があり、本来であれば、http://NASのIP:2283で開くらしいのですが、サーバーに繋がらないというトラブルやエラーを経てようやく動作するようになったのが上記のDocker Composeになります。
ひとまず色々と試行錯誤した結果、Immichを入れることができたので、外部ライブラリを取り込むことにしました。
設定の外部ライブラリでライブラリの作成を行い、画像データのスキャンを行ったところ、最初変化がないので、スキャンしているのかわかりませんでした。
その後、Job Queuesというところがタスクセンターと同じ役割があり、待機中の数字がサムネイルできていない写真の数みたいです。
サムネイル作成から半日ほどNASの管理画面に繋がるまでにすごく時間がかかるぐらいTS-216Gの動作が重くなりましたが、ある程度時間が経つと少しCPUの使用率が落ち着いてきました。
サムネイルが完成するまでは動作が重そうですが、動作が重い現時点でもQuMagieよりもサムネイル表示が速い感じがするので、ちょっと期待できそうです。(思ったよりもサクサク動く)
しかし、メモリの使用量が2〜4GB使用するため、サムネイル作成が終わっても使用量が変わらないのであれば、これ以上他に何かさせるのは厳しいかもしれません。
サムネイルが生成できていない画像は画像の読み込みエラーと表示されるのですが、最初は全ての画像が読み込みエラーと表示されるので、失敗かと思い、一回ライブラリを削除してコンテナを作り直していました。
その後、単にNASの動作が重すぎてサムネイルが生成できていないことに気づき、1日ほど待ったところ、少しずつサムネイルが表示されるようになりました。
設定が面倒で共有フォルダ内の画像全てを見れるようになっているため、画像が重複していますが、速度はQuMagieよりもだいぶ速く感じます。
まだ全ての画像のサムネイルができていないため、はっきりしませんが、QuMagieだと過去の画像に飛ぶと表示にとても時間がかかるのですが、Immichはそこまで待たされている感じがしません。
DH2300と比べると速度は若干落ちている感じはあるものの、それはTS-216Gの処理速度の問題であり、現在サムネイル作成中なところもあるため、もしかするともう少し速くなるかもしれません。
最後にVPN接続でUGREENのNASアプリを使ってみた感想を軽く書いて終わろうと思います。
Obsidianのメモ同期をオンにするためにTailscaleによるVPN接続をしているのですが、3〜5Mbpsの回線のPocket Wi-Fiに繋いで外出先からUGREENのNASアプリを使うと読み込みが遅くなります。
なので、リモートアクセス機能で使うためにオフにして使うのですが、オンオフ切り替え直後はネットワークが不安定になるらしく、リモートリンク機能が使えるようになるまで時間がかかります。
VPN接続をオンにした状態で速度を上げれないか色々試して少し速度は上がったものの、リモートリンク機能を使った方が速いので、もし今回導入したImmichを外から使ってみて問題なければ、外ではImmich、家の中ではUGREENのNASアプリと使い分けようと考えています。
とりあえず、今回も長くなってしまったので、自分用に後でAIに作り直してもらおうと思います。






