忍者ブログ

デードリームス - ウェブログ

C3のブログです。 新刊情報・マンガ書く時のおぼえがきとかを書いています。

GoogleフォトとDropboxの代替を自宅に立てた



かねてからカメラで撮った写真はGoogleフォト、
ノートPCで書いたイラストや漫画をスマホでプレビューしたりスマホで保存した画像をPCに移動したりの役割をDropbox、
保存した画像はノートPCのローカル
というふうにしていたのですが

企業のサーバーに自分の写真が大量に入っている(ともすれば何かのきっかけですべて消える)のってやだな…というのと
ノートPCのローカルに入っている参考画像やもろもろがローカルでしか見られないのも不便だなというのと
DropboxやOnedrive無料プランでどうにかするのも限界があるなというので
そのへんを自宅サーバー的なものに移そうと思いました

こんな感じにしたい
ノートPC
 ├SDカード…完成原稿のバックアップ
 ├Googleドライブ…原稿データ.psdのプレビューと完成原稿のバックアップ(2)、納品窓口
 └Dropbox…完成イラストやSNS投稿用漫画のプレビューとスマホへの移動

Ubuntuマシン
 ├Immich…スマホやカメラで撮った写真置き場、Googleフォトの代替
 └Seafile…インターネットから保存した画像とかの置き場、Dropboxの代替


やったこと
1.デスクトップPCの小さいやつを買う
2.Ubuntu  Serverをインストールする
3.Dockerをインストールする
4.Immichを入れる
5.Seafileを入れる
6.Googleフォトから写真を一括ダウンロードする
7.Googleフォトにあった写真フォルダとDropboxにあった画像フォルダをそれぞれに同期する
みたいな感じです。

以下手順メモ。


1.デスクトップPCの小さいやつを買う


こういうのを買いました。
SSDが256GBとWindows10がはいってた。1スロット空き。

一緒に買ったもの
・SSD512GB
 実際の写真とか入れる用。普通にGoogleフォト250GBくらいあってびっくり。
・USBメモリ
 これはUbuntuをインストールするのに使う。

2.Ubuntu  Serverをインストールする

Ubuntu公式からダウンロードしてUSBメモリに焼いてインストール。
今回は最初から入ってたSSDがSATAだったので、スロット2にM2を差して
SATAの256GB→Windows10はそのまま、バックアップ用
M2の512GB→Ubuntuをインストールしてこっちを標準起動
にした。

インストール以外にやったこと
・GUIの導入
 普通にコマンドラインだけのUbuntuに慣れてなかったのと、初手写真とかをがちゃがちゃする予定だったので入れた。

 $ sudo apt install -y ubuntu-desktop

 でいれて再起動していつものUbuntuの見た目になった

・サスペンドしない設定

 $ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target


・Ubuntu Proに登録
 Ubuntu Server起動時に勧めてくるので登録した

3.Dockerをインストールする

4.Immichを入れる

今回はGoogleフォトの代替としてImmichを使います。GoogleフォトライクなUIとスマホアプリもある。顔認識とか場所表示とかまであるらしいのでありがたい

ここのサイトを参考にした
https://qiita.com/murachi1208/items/05a877c6a181cc32a444


設定が終わってdocker compose up -dしてdocker compose logs -fして大丈夫そうだったら、UbuntuのFirefoxから
http://localhost:2283/
を開いてみていけるか確認する

同じWiFiにいるノートPCとiPhone用またはAndroid用アプリからは
http://{Ubuntu上でip -aしてeno1に出てきたIPアドレス}:2283/
で開けるか確認

5.Seafileを入れる

Dropboxの代替としてSeafileを使うことにしました
Nextcloudとかも候補にあったけど、起動したときに初期表示であれこれ初期画像とかをいれてくるのが嫌で却下。

ここのサイトを参考にした
https://mebee.info/2022/02/06/post-51584/

こっちもhttp://localhost:{docker-compose.yamlに書いたポート番号}でブラウザから開けるか確認
Seafileもスマホアプリがある


どちらもPC起動時に勝手にする用の
restart: always
を書き忘れた気がする あとで書く

6.Googleフォトから写真を一括ダウンロードする
今回はGoogleフォトに入ってる写真を移管するのが目的だったのでこれをやります

https://takeout.google.com/
にログインして、Googleフォトにだけチェックを入れて「次のステップ」に進んで完了
2時間くらいでダウンロードできる通知がくるので、Ubuntu側で開いてダウンロードする

今回は2GB区切りで申請したところ、写真が250GBくらいあったのでzip×110個くらいになった


Googleフォトに入っている写真は写真ファイル(IMG0001.jpgとか)とExifが記載されたjson(IMG0001.jsonとか)に分割されているので、くっつける作業が必要になる

1)Takeoutでダウンロードした写真を解凍して、1つのフォルダにまとめる
 ベタ置きでOK

2)実際に写真が入ってほしいフォルダを作る
 今回は/home/{username}/Pitures/Photosにしました

3)Google Takeout Helperをインストール

 $ pip install -U google-photos-takeout-helper

 普通にpython入ってなかったので 直後に出るpythonいれなよっていうサジェストに従ってインストールしてから再実行

4)Takeout Helperの実行

 $ google-photos-takeout-helper -i [入力フォルダのパス] -o [出力フォルダのパス]

5)終わるのを待つ

Takeout Helperの挙動が写真とjsonを作業フォルダにコピー→出来上がったのを出力フォルダにコピー という流れだったので、200GBある写真やるのに512GBのSSDでは普通にたりなくてエラー終了
エラーログに書いてある未完了フォルダだけ残して他を消して再実行したらいけました

7.Googleフォトにあった写真フォルダとDropboxにあった画像フォルダをそれぞれに同期する

Googleフォトから出力してTakeout Helperまで終わった写真がUbuntuの/home/{username}/Pitures/Photosにはいっているので、これをImmichで見れるようにします

1)パーミッションの設定
写真置き場にしたフォルダに権限付与する

 $ sudo chmod -R 755 /home/{username}/Pictures/Photos

2)docker-compose.yamlを編集する
services配下とimmich-mashine-learningのvolumeに写真入れたフォルダを:/external_photos:roとして追加

services:
  immich-server:
    # ...略...
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /home/{username}/Pictures/Photos:/external_photos:ro # ←これを追加

  immich-machine-learning:
    # ...略...
    volumes:
      - model-cache:/cache
      - /home/{username}/Pictures/Photos:/external_photos:ro # ←これを追加

3)できたらdocer compose restartする

4)フォルダを追加する
localhost:2283を開きなおして、右上のユーザーアイコン→Administrator→External Librariesに移動
右上の追加ボタンを押して、フォルダの追加をクリック
さっき「/external_photos」と入力

4)External Librariesに戻ってScan All Librariesをクリック

マシンスペックによるけど出るまでだいたい半日かかる
Takeout Helperしていてもやっぱり日付が入ってない写真は大量にでる いたしかたない


SeafileにはDropboxで保存していたイラストとか以外の画像たちを同期したい
置き場は/home/{username}/Pictures/Boxにしました
こちらも

 $  sudo chmod -R 755 /home/{username}/Pictures/Box

これをSeafileで見れるようにします

1)Seafile GUIをインストールする

 $ sudo add-apt-repository ppa:seafile/seafile-client

 $ sudo apt update

 $ sudo apt install -y seafile-gui

2)ドロワに追加されたSeafileクライアントを開いて、{マシンのIP}:8081でログインする
最初に聞かれるChoose Seafile Folderはデフォルト値でOK

3)GUI一番下のフォルダ追加のところをクリックして、/home/{username}/Pictures/Boxを選択する
わりとすぐ同期されて表示される


いったんこれでImmichとSeafileが使えるようになった なんだかんだ調べながら友達とGeminiに相談とかしてたら3,4日かかった


残課題
・localhostじゃなくて外からでも見れる設定をしていない
・バックアップの設定したけど記事に書いていない



おしまい

PR

コメント

プロフィール

HN:
Clif Three
性別:
男性
自己紹介:
C3という名前でおもにデブ細のマンガを書いています。

ここでは主にマンガ・イラストの更新情報や
ちょっとした考え事などをまとめていこうと思っています。

最新コメント

P R