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からの移行はスムーズに完了しました。
スマホからの自動同期が無い点だけが不満ですが、容量を気にせず突っ込めるメリットは大きいです。
クラウドサービスからオンプレへの回帰が進み、自宅サーバーがどんどんミッションクリティカルになってきた…