【NAS】搭建属于自己的相册备份工具 · Mt_Photos
💠前言
-

-
MT Photos:一款为Nas用户准备的照片管理系统,支持自动整理、分类您的照片,比如:时间、地点、人物、照片类型。
-
功能特点
- 支持Docker部署
- 支持多用户
- 支持时间线方式展示您的照片
- 支持以文件夹的方式展示您的照片
- 支持人脸分类
- 支持地点分类
- 支持Live Photos的无损备份、下载、显示
- 支持场景分类(比如:截图/动物/风景等)
- 通过影集分享,您可以方便地将照片分享给家人
- 支持IOS/安卓 APP
-
收费情况
- 99元终身
💠环境
- 设备:群晖NAS
- 芯片:i5-9500T
- 部署方式:Docker-compose
💠Docker部署方式已包含CLIP和人脸识别的AI大模型.
- 教程更新日期:2026-6-18
- 官网文档:https://mtmt.tech/docs/advanced/ml
- 部署方式:Docker-compose
- 通过SSH工具,连接设备后台,使用命令行进行部署,更高效.
- 创建目录,命名为mt_photos.
- 创建YML文件,vim docker-compose.yml 内容如下:
services:
mtphotos:
image: mtphotos/mt-photos:latest
container_name: mtphotos
restart: unless-stopped
ports:
- 8963:8063 # 左侧端口可自定义
volumes:
- /mnt/mydisk/ssd/mt_photos/config:/config
- mt_photos_pg:/config/pgsql
- /mnt/mydisk/ssd/mt_photos/upload:/upload
- /mnt/mydisk/ssd/mt_photos/upload/Liu
- /mnt/mydisk/ssd/mt_photos/upload/Hygge
- /mnt/mydisk/ssd/mt_photos/upload/Baby
environment:
- TZ=Asia/Shanghai
depends_on:
- mtphotos_ai
- mtphotos_face_api
mtphotos_ai:
image: devfox101/mt-photos-ml:v2.7.5
# runtime: nvidia # 如果需要使用cuda,就取消这一行的注释
container_name: mtphotos_ai
restart: unless-stopped
devices:
- "/dev/dri:/dev/dri" # 如果需要使用intel核显,就取消这一行和上一行的注释
ports:
- 3603:3003 # 左侧端口可自定义
volumes:
- /mnt/mydisk/ssd/mt_photos/ml-cache:/cache # 用来存放各种识别模型的文件
environment:
- API_AUTH_KEY=7XrNCzwmTzcA2vGwX
# - HF_ENDPOINT=https://hf-mirror.com # 如果下载模型失败,可以尝试取消这一行的注释,使用hf的镜像地址下载模型
# 下面2行为自定义CLIP模型的示例
# - CLIP_VISUAL_MODEL_NAME=XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k
# - CLIP_TEXTUAL_MODEL_NAME=XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k
mtphotos_face_api:
image: crpi-gcuyquw9co62xzjn.cn-guangzhou.personal.cr.aliyuncs.com/devfox101/mt-photos-insightface-unofficial:latest
container_name: mtphotos_face_api
restart: unless-stopped
ports:
- 8966:8066 # 左侧端口可自定义
environment:
- API_AUTH_KEY=LBrrx7V2N2yVbjoue # 密钥请自定义
volumes:
- /mnt/mydisk/ssd/mt_photos/face:/app/data # 用来存放face的数据目录
# 定义顶级卷
volumes:
mt_photos_pg: {}
针对上述YML文件的注释:
- config文件夹:用于存储数据库文件、缩略图、预览视频等缓存文件;
- upload文件夹: 用于存储App备份的照片、视频;
- zhansan/lisi:用于存储张三/李四的个人相册,亦可修改为其余名称;(官方表示/folder1,/folder2为已有的照片、视频所在的文件夹;可以根据实际情况添加需要映射的目录,数量没有限制。)
- mtphotos_ai这个服务是用来做场景识别和图文搜索的,该服务是可选的,建议配置.
- 拉取项目
docker-compose pull
- 启动项目
docker-compose up -d
- 打开网页后台
- IP:8963
- 打开MT_Photo的网页后台,找到"系统配置"--人脸识别-API (Beta),录入API配置.
- 接口地址 填写 http://[nas的ip]:自定义端口
- API_AUTH_KEY 填写 mt_photos_ai_extra (这是默认值;如果使用过密码随机生成器,就使用自己生成的,更安全)
- 人脸置信度阈值 如果人脸检测模型用的是默认的retinaface,建议填写0.99 ;如果是其他模式建议填写0.9;
- 人物匹配差异值阈值 如果人脸特征提取模型用的是默认的Facenet512,建议填写0.15;;
- API参数配置完成,先点击"测试API",网页提示"测试通过",表示之前的镜像配置成功了;否则再次进行排查.
- 再次开启"人脸识别的开关",此页面的后台任务就有数据加载中;
- 群晖后台页面,右上角也会显示"正在索引"的进度,成功后,同样会提示"索引完成".
- 静静等待相册网页端的人脸识别数据加载完成,大功告成.
- 若你的家宽ip有公网ip,就在软路由中,做一下端口转发也行.
💠博主自用的Docker-compose的YAML配置文件
- 注意:配置MT_Photo的网页后台,需要将【智能识别 - API里面的自定义CLIP的向量长度】--修改为768,CLIP才会生效.
services:
mtphotos:
image: mtphotos/mt-photos:latest
container_name: mtphotos
restart: unless-stopped
network_mode: "host"
ports:
- 8963:8063
volumes:
- /mnt/mydisk/ssd/mt_photos/config:/config
- mt_photos_pg:/config/pgsql
- /mnt/mydisk/ssd/mt_photos/upload:/upload
- /mnt/mydisk/ssd/mt_photos/upload/Liu
- /mnt/mydisk/ssd/mt_photos/upload/Hygge
- /mnt/mydisk/ssd/mt_photos/upload/Baby
environment:
- TZ=Asia/Shanghai
depends_on:
- mtphotos_ai
- mtphotos_face_api
mtphotos_ai:
image: devfox101/mt-photos-ml:v2.7.5
# runtime: nvidia # 如果需要使用cuda,就取消这一行的注释
container_name: mtphotos_ai
restart: unless-stopped
devices:
- "/dev/dri:/dev/dri" # 如果需要使用intel核显,就取消这一行和上一行的注释
ports:
- 3603:3003
volumes:
- /mnt/mydisk/ssd/mt_photos/ml-cache:/cache # 用来存放各种识别模型的文件
environment:
- API_AUTH_KEY=7XrNCzwmTzcA2vGwX
# - HF_ENDPOINT=https://hf-mirror.com # 如果下载模型失败,可以尝试取消这一行的注释,使用hf的镜像地址下载模型
# 下面2行为自定义CLIP模型的示例
# - CLIP_VISUAL_MODEL_NAME=XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k
# - CLIP_TEXTUAL_MODEL_NAME=XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k
mtphotos_face_api:
image: crpi-gcuyquw9co62xzjn.cn-guangzhou.personal.cr.aliyuncs.com/devfox101/mt-photos-insightface-unofficial:latest
container_name: mtphotos_face_api
restart: unless-stopped
ports:
- 8966:8066
environment:
- API_AUTH_KEY=LBrrx7V2N2yVbjoue
volumes:
- /mnt/mydisk/ssd/mt_photos/face:/app/data # 用来存放face的数据目录
# 定义顶级卷
volumes:
mt_photos_pg: {}
💠参考资料
- xiaozblog博客,针对群晖NAS:https://blog.xiaoz.org/archives/19858
- David的日常, 针对UnRaid: https://post.smzdm.com/p/aev0geo3


