こんにちは、をうどんです。
今回は、以前からやろうと思っていた自宅サーバーでの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まで対応。
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を取得できます。手軽!
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.view、asset.read、asset.update、asset.upload、asset.download、asset.delete、album.read、album.create、album.update、album.delete、albumAsset.create、albumAsset.delete、person.read、map.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から移行する記事を書きたいなと思ったり。
自宅鯖以外の趣味の話をしたいなと思ったり。


コメント