2021年6月1日からGoogle Photoの容量が無制限ではなくなり、無料枠は15GBに制限されてしまいました。
完全に音楽サーバーを構築した話の二番煎じですが、自宅k8sに写真サーバーを構築してそちらに移行する事にしました。

デプロイ

self-hostedな写真サーバーで最もメジャーなプロダクトはPiwigoの模様。
サクっとyamlを書いてデプロイします。

deployment.yaml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
apiVersion: apps/v1
kind: Deployment
metadata:
  name: piwigo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: piwigo
  template:
    metadata:
      labels:
        app: piwigo
    spec:
      containers:
        - name: piwigo
          image: lscr.io/linuxserver/piwigo
          env:
          - name: TZ
            value: Asia/Tokyo
          - name: PUID
            value: "1000"
          - name: PGID
            value: "1000"
          ports:
            - containerPort: 80
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /
              port: 80
          volumeMounts:
          - name: myvolume
            subPath: piwigo/config
            mountPath: /config
          - name: myvolume
            subPath: piwigo/gallery
            mountPath: /gallery
      volumes:
        - name: myvolume
          persistentVolumeClaim:
            claimName: myvolume
---
apiVersion: v1
kind: Service
metadata:
  name: piwigo
  namespace: default
spec:
  ports:
    - name: http
      port: 80
      protocol: TCP
  selector:
    app: piwigo
  clusterIP: None

別途MySQLも必要なので、Kubernetes公式ドキュメントのサンプルコードあたりを参考にしてデプロイしておきます。

写真の追加

画像データをmyvolumeの piwigo/gallery/galleries/{アルバム名}/{サブアルバム名}... 以下に追加し、Web UIのAdminメニューから Synchronizeを実行すればアルバムが自動で作成されます。

この際、Simulationというdry-run的な機能が用意されており便利です。ファイル名にはスペースや全角文字が使えない等の制約がありますが、Presync AutoRenameというプラグインを使うとある程度は自動でリネームできて便利です。

もしくは以下のワンライナーでもOK。

1
$ find . -name "*{置換したい文字列}*" | rename 's/{置換したい文字列}/{置換先文字列}/g'

プラグイン

画像を表示する際にデフォルトでは解像度がかなり落とされるので、Automatic Sizeプラグインを導入しました。

他に良さげなプラグインがあれば随時追記予定


モバイルアプリもあり、Google Photoからの移行はスムーズに完了しました。
スマホからの自動同期が無い点だけが不満ですが、容量を気にせず突っ込めるメリットは大きいです。

クラウドサービスからオンプレへの回帰が進み、自宅サーバーがどんどんミッションクリティカルになってきた…