【備忘録】NextcloudとImmichのセットアップ

こんにちは、をうどんです。
今回は、以前からやろうと思っていた自宅サーバーでのNextcloudの立ち上げをしたのでその方法を置いておこうと思います。
NextcloudにはImmich Integrationを導入します。
次の記事でGoogle photoからimmichへの移行方法などを紹介したいと思います。
docker compose自体あんまり良くわかってないから勉強しなければ…

この記事ではセキュリティのことを考えていないので、外に公開する際には対策して下さいマジで。

紹介している設定方法や情報は、あくまで執筆時点の私の環境に基づいたものです。再現性や安全性を保証するものではありません。万が一、本記事の内容によりトラブルや損失・損害が発生した場合でも、一切の責任を負いかねます。最終的な判断と操作は自己責任でお願いいたします。

やりたいこと

  • オープンソースなオンラインストレージサービスのNextcloudを使う
  • プライバシー的に自分のサーバーで完結するGoogle photoライクなサービスImmichを使う
  • 1つのVMでNextcloudとImmichを動かす
  • Immich Integrationというアプリを使用して、NextcloudでImmichにアップロードした写真を見れるようにする

環境

  • Debian 13.5
  • Docker version 29.6.1, build 8900f1d
  • Docker Compose version v5.3.1

docker-compose.ymlをつくる

Nextcloud

Immich Integrationが対応しているNextcloudのバージョンに合わせて設定します。
参考程度にして下さい。パスワードは変更しましょう。
執筆時点ではバージョン34まで対応。

YAML
services:

  db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    restart: always
    volumes:
      - db_data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=mysql_root_password
      - MYSQL_PASSWORD=mysql_password
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    # バージョン34
    image: nextcloud:34
    restart: always
    ports:
      - 8080:80
    volumes:
      - nextcloud_data:/var/www/html
    environment:
      - MYSQL_PASSWORD=mysql_password
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
      - PHP_MEMORY_LIMIT=1G
      - PHP_UPLOAD_LIMIT=150G
    depends_on:
      - db

volumes:
  db_data:
  nextcloud_data:

docker compose up -dしておきます。 

Immich

次に、immichについてもdocker-compose.ymlを作ると思いきやなんとimmichが用意してくれてくれています。
公式ドキュメントに描いてあるとおり、ディレクトリを作って、以下2つのコマンドでdocker-compose.ymlと.envを取得できます。手軽!

Bash
wget -O docker-compose.yml 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のDB_PASSWORDは変えろと描いてあるので変えましょう。
ついでにTZ(Time Zone)のコメントアウトを外し、Asia/Tokyoへ。
あとはdocker compose up -dをするだけ。

Immichの設定

Immichの初期設定

ブラウザで[VMのIP]:2283にアクセスし、管理者アカウントを作成します。(スクショ忘れた)
その後は流れに沿って設定を進めます。

設定が終了したら、右上のアイコンから「アカウント設定」、「APIキー」、「新しいAPIキー」の順に進み、わかり易い名前を入力し、必要な権限を選択します。

APIキーの取得

Immich Integrationで必要な権限はGithubの”Required Immich API Key Permissions”セクションに書いてあります。
必要な権限は執筆時点では
asset.viewasset.readasset.updateasset.uploadasset.downloadasset.deletealbum.readalbum.createalbum.updatealbum.deletealbumAsset.createalbumAsset.deleteperson.readmap.readだそう。Githubを見に行こう。

APIキーが作成できたらメモっておきましょう。

Nextcloudの設定

Nextcloudの初期設定

ブラウザで[VMのIP]:8080にアクセスし、管理者アカウントの作成をします。
以下の画面の「ストレージとデータベース」を開いてdocker-compose.ymlで設定したパスワードに設定しないと行けなかったはず(うる覚え

処理が終わり、次の画面に行くとなぜか以下のようになったので、[VMのIP]:8080にアクセスし直すとダッシュボードページにアクセスできます。

Immich Integrationの導入と設定

次に、Immich Integrationの導入をします。
ダッシュボード左上をクリックし、「さらにアプリ」をクリック。

右上の検索窓でImmich Integrationを検索

「ダウンロードして有効にする」をクリック

完了したら、ImmichのAPI Keyを登録します。
まず、ダッシュボード右上の自分のアイコンをクリックし、「個人設定」をクリック。
左のナビゲーションバー内のPersonalセクションの「Immich Integration」に入り、http://[VMのIP]:2283と先ほど取得したAPI Keyを入力します。
Test connectionを押して以下のように成功したらSaveを押して保存します。

まとめ

いつかデータ本体はデータ保管用のHDDに移動させたいな~と思いつつ今回はここらへんで。

そのうち、Google photoから移行する記事を書きたいなと思ったり。
自宅鯖以外の趣味の話をしたいなと思ったり。

コメント

タイトルとURLをコピーしました