一个自行部署的照片托管解决方案伪横评(真水文)。
使用设备:Celeron N5105(无AVX指令集),16G RAM,512G SSD;Arch Linux,容器环境Podman
如读者需对比功能和界面上的差异,请进入对应的GitHub页面,均有demo。
个人的需求其实很简单,只是一个相册分类+照片时间线预览。要说特殊需求大概就是有大量的HEIC图片,毕竟谁的空间也不是大风刮来的,另外最好能够用类MySQL。
Photoprism
21年就久仰大名,2.5万star足以证明它已被许多人信赖。TensorFlow的人脸和内容识别,Live Photo支持,PWA网页,Go语言后端,较为详细的文档,一切看起来都是那么的美好。
不过我一直是个Docker(或者说容器)黑,Photoprism并没有提供单独的部署方法。万能的AUR有一个不需要容器的pkgbuild,但安装后并没有任何后续步骤的提示,自带的配置文件没有提供任何有价值的信息,启动systemd service之后没有任何反应,打开默认端口也没有任何内容。
无奈只能试着用Podman Compose安装,然而这玩意与Docker Compose的兼容性并不好。查找文章过后发现需要设置SELinux策略,极其麻烦,且容器设置项也较为繁琐,直接放弃。
另外感觉Photoprism搞了不少开源项目之外的东西,给人的感觉就像……有点花里胡哨。当然也可能是我想多了。
Librephotos
功能特性和Photoprism较为相似。仍然仅支持Docker一种方式。由于不支持MySQL类的数据库,将镜像拉下来之后占用会十分巨大:
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/postgres 13 beb2ef252f25 3 hours ago 381 MB
docker.io/reallibrephotos/librephotos latest 430b4edbed00 2 weeks ago 7.39 GB
docker.io/reallibrephotos/librephotos-frontend latest d11186a8c1cd 2 weeks ago 25.3 MB
docker.io/reallibrephotos/librephotos-proxy latest 17cb19b36d32 2 weeks ago 146 MB
docker.io/library/redis 6 c250e371c399 2 weeks ago 116 MB
文档中介绍由于机器学习模型的原因,将会占用10GB的硬盘空间。有点劝退。基于Python,效率也有点堪忧(希望是不必要的担忧)。另外,还附带PostgresSQL和Redis,不知道要吃掉多少内存。
开发者提供了非容器化的选择,但仅支持Debian系。按照官方步骤仍然无法使用Podman Compose直接启动,所以也直接放弃了……懒得跟它耗下去。
Photoview
官方认可AUR,好耶!相对来说,手动安装过程是最简单而且符合直觉的。托打包者和开发者的福,在安装AUR后,只需要修改一下配置文件里的MySQL连接参数(或者直接改成SQLite),然后启动systemd服务即可。功能相对来说简单,不过对我来说够用。人脸识别的准确度很一般,但对我来说也是锦上添花的功能。
提示:如果不想或不能改变文件所有权,建议使用文件ACL setfacl -Rdm
命令为photoview用户授予循环继承权限。
用下来几天发现了两个主要的问题,一个是一次导入过多照片的时候会卡住(假完成),阈值大约100张,另一个是HEIC图片的EXIF可能不能正确识别(提了issue)。作者似乎有点摆,应该也没太多时间。
Immich
自动备份功能看起来挺有意思的,不用手动把照片拷贝出去了。
使用TensorFlow需要AVX支持,但似乎有人编译出了不需要AVX的Docker镜像。
数据库后端好像是Postgres和Redis,算了……
其他
被HEIC需求毙掉的:PiGallery2
最近也在研究这些相册服务,开源免费的想找个完全符合需求的还挺难的。