之前的照片全都存储在阿里云盘上,但是最近发现阿里云盘也开始限速了,所以打算把照片全部迁移到对象存储上,但这样照片的查看就很不方便,经过一番折腾,尝试了包括 immich 这些常见的自托管服务之后,最终开始选择了付费的 mt_photos,毕竟免费的质量也就那样吧,而且 mt_photos 3 块钱一个月也近似免费了。
挂载 COS
安装工具依赖
apt install fuse
下载 cosfs 并安装
wget https://github.com/tencentyun/cosfs/releases/download/v1.0.23/cosfs_1.0.23-ubuntu20.04_amd64.deb
dpkg -i cosfs_1.0.23-ubuntu20.04_amd64.deb
配置 COS 密钥信息
echo "<bucket_name>:<access-key-id>:<access-key-secret>" > /etc/passwd-cosfs
chmod 640 /etc/passwd-cosfs
挂载存储桶至指定目录
mkdir -p /mnt/cosfs # 存储桶挂载路径
mkdir -p /var/cache/cosfs # 存储桶缓存路径
cosfs <bucket_name> /mnt/cosfs -ourl=<cos-endpoint> -ouse_cache /var/cache/cosfs
cosfs yvling-photos-1257337367 /mnt/cosfs -ourl=https://cos.ap-guangzhou.myqcloud.com -ouse_cache=/var/cache/cosfs -oensure_diskfree=1024
安装 Docker
curl -fsSL https://get.docker.com | bash -s docker
安装 mt_photos
整个安装过程非常简单,比起 immich 显得更加简洁。
拉取镜像
docker pull mtphotos/mt-photos:latest
关于配置目录和数据目录
在 mt_photos 架构下,配置和数据分离,且仅需要将这两个目录挂载到容器内部即可,映射关系如下:
/xxx/mt_photos/config ==> /config # 配置目录,包含数据库文件、缩略图缓存等,可独立备份
/xxx/mt_photos/upload ==> /upload # 数据目录,实际存放照片的地方
我的做法是:
- 配置目录挂载到宿主机硬盘,定期备份即可;
- 数据目录挂载到 COS,保证照片原文件的可用性;
启动镜像
mkdir mt-photos && cd mt-photos
docker run -d \
--name="mt-photos" \
-v ./config:/config \
-v /mnt/cosfs:/upload \
-p 8063:8063 \
-e TZ="Asia/Shanghai" \
--restart="always" \
mtphotos/mt-photos:latest
配置 mt_photos
启动镜像后,访问 8063
端口即可进入安装界面:
设置完管理员密码之后,进入“设置图库”环节,在这里添加之前挂载的 /upload
目录:
设置完成登录系统,后台已经在自动扫描照片了(这个过程比较漫长,毕竟是挂载的存储桶,受限于网络带宽):
然后进行相关配置,我只开启了 GPS 识别,使用高德地图的 API 完成,具体参考 GPS API 配置 - 高德开放平台。
最终效果如下: