跳转到内容

PhotoPrism 照片管理(官方插件) ​

完成后,NAS 上的照片目录在浏览器里变成一个可以按时间浏览和搜索的相册。PhotoPrism 和它的 MariaDB 数据库都以 Podman 容器运行,由插件在界面上配置。

适合谁 ​

  • 照片已经在 NAS 上,想在服务器端整理、浏览、搜索,并且希望原图保持在普通的文件夹里。
  • 愿意给它至少 2 个 CPU 核和 3 GB 以上内存,见下面的资源要求。

和 Immich 的取舍:

PhotoPrism(本文)Immich
安装官方插件,Podman 容器,界面里配置Compose 应用,多个容器,自己维护 compose 文件
重点整理已经在 NAS 上的照片手机相册自动备份到 NAS
升级手动拉镜像再重启服务先读 release notes,再更新 compose

要的是「手机拍完自动传到 NAS」,看 Immich。

默认账号是 admin / admin,默认用明文 HTTP

  • 影响范围:这是一个 Web 应用,第一次登录用 admin / admin(界面也会提示)。没有选证书时是明文 HTTP,密码和照片在网络上不加密。勾选 公开(Public)会关闭密码认证、WebDAV 和高级设置页,等于任何能访问端口的人都能看。应用数据里的 storage/ 和 db/ 目录被插件设成 0777,数据库文件就在里面。
  • 前置条件:第一次登录就改掉管理员密码;不要把端口映射到公网,要远程用就走 VPN 或配好 HTTPS 的反向代理;应用数据用的共享文件夹不要通过 SMB 或 NFS 共享给别人。
  • 怎么回退:取消勾选 已启动,保存并应用,服务停止并移除 systemd 单元;原图和应用数据留在共享文件夹里,不受影响。

插件信息 ​

项内容
包名openmediavault-photoprism
来源官方插件,不需要 omv-extras
OMV 8 状态截至 2026-10-18 的官方软件源为 8.0.4-1(amd64、arm64),要求 OMV 8.5.11 及以上
菜单位置服务 → PhotoPrism(Services → PhotoPrism)
依赖podman、catatonit、nftables。安装时创建系统用户 photoprism,属于 users 组

在 系统 → 插件(System → Plugins)里安装。安装时会先 podman pull 镜像,首次可能要几分钟。

它是怎么运行的 ​

  • 容器:一个名为 photoprism 的 Podman Pod,里面有 photoprism-app(PhotoPrism)和 photoprism-db(MariaDB),选了证书时再加一个 photoprism-proxy(Caddy,负责 HTTPS)。由 systemd 单元 pod-photoprism 管理。
  • 镜像从哪拉:都来自 Docker Hub,默认 docker.io/photoprism/photoprism:latest、docker.io/mariadb:11、docker.io/library/caddy:latest。访问不了 Docker Hub 时,可以用环境变量 OMV_PHOTOPRISM_APP_CONTAINER_IMAGE、OMV_PHOTOPRISM_DB_CONTAINER_IMAGE、OMV_PHOTOPRISM_PROXY_CONTAINER_IMAGE 换成别的地址,用法见 环境变量。
  • 数据放哪:
界面字段容器里的位置内容
图片(Images)/photoprism/originals你的原图
应用数据(Application data)下的 storage//photoprism/storage缩略图、缓存、配置
应用数据下的 db/MariaDB 的数据目录数据库文件
导入(Import),可选/photoprism/import待导入的照片
  • 访问权限:容器以 photoprism 用户和 users 组运行,所以共享文件夹要允许它们访问,默认的 root:users、2775 就够。图片 目录是以可写方式挂进去的,只读(Read-only)只是应用层的开关,不是文件系统层的只读。

配置与使用 ​

1. 准备共享文件夹 ​

在 存储器 → 共享文件夹(Storage → Shared Folders)里准备:

  1. 原图目录,例如 photos,可以是已经存放照片的目录。
  2. 应用数据目录,例如 photoprism-data。数据库和缩略图读写频繁,放在 SSD 上更好,也不要通过 SMB 共享出去。
  3. 需要时再建一个导入目录。

2. 配置插件 ​

服务 → PhotoPrism:

字段默认值说明
已启动(Enabled)关
端口(Port)2342监听端口
证书(Certificate)空选一个 系统 → 证书(System → Certificates)里的 SSL 证书就会启用 HTTPS;不选是 HTTP
公开(Public)关关闭密码认证、WebDAV 和高级设置页,别开
只读(Read-only)关禁用导入、上传、删除,只适合只想浏览的场合
文件大小限制(Filesize limit)1 GB单个媒体文件的上限,可选 1 MB 到 100 GB,或禁用
图片(Images)无原图目录,启用时必填
应用数据(Application data)无应用数据目录,启用时必填
导入(Import)无可选,勾选只读后不可用

保存,点黄色提示条上的应用。点 打开 UI(Open UI)会跳到 PhotoPrism 的页面。

3. 第一次登录和索引 ​

  1. 打开 http://<NAS 地址>:2342,用 admin / admin 登录,马上改密码。
  2. 在 PhotoPrism 的界面里到 Library 开始索引原图目录,具体入口以它的界面为准。索引需要时间,照片越多越久。
  3. 索引完成后,原图目录里新增的照片要再索引一次才会出现。

4. 资源要求 ​

按 PhotoPrism 官方的系统要求:至少 2 个 CPU 核、3 GB 物理内存、64 位系统,内存最好和核数相当,另外建议配置至少 4 GB 的 swap,也不要给容器设硬性的内存上限,否则处理大文件时可能被意外重启。大型相册的索引受益于本地 SSD,尤其是数据库和缓存。内存在 1 GB 及以下的系统会禁用 RAW 转换和人脸识别。

检查结果 ​

在 OMV 的 shell(root)里,只读确认:

sh
# 在 OMV 的 shell 里执行(root)
systemctl status pod-photoprism
podman ps --pod                 # 应有 photoprism-app 和 photoprism-db,选了证书时还有 photoprism-proxy
podman logs photoprism-app      # 查看应用日志,需要持续观察时加 -f

在 服务 → Podman → 容器(Services → Podman → Containers)里也能看到它们。然后:

  1. 往原图目录放几张测试照片,在 PhotoPrism 里索引,确认能浏览。
  2. 在 服务 → PhotoPrism 点 打开 UI,确认链接能打开。
  3. 重启 NAS,确认服务自动起来。

备份与维护 ​

  • 要备份什么:原图目录是最重要的,按 备份策略 单独备份;应用数据目录里有数据库和缓存,丢了可以重新索引,但标签、相册这类整理工作会丢。数据库文件在运行时直接复制可能不一致,备份前先停服务(systemctl stop pod-photoprism),备份完再启动。
  • 升级:容器用本地已有的镜像启动,不会自动更新。官方没有文档化升级流程,按插件生成的单元文件推断:先拉新镜像(服务 → Podman → 镜像(Services → Podman → Images)里的拉取,或 podman pull docker.io/photoprism/photoprism:latest),再 systemctl restart pod-photoprism,容器会用新镜像重建。升级前先备份应用数据目录,并且先读 PhotoPrism 的更新说明。MariaDB 固定在 11,不会随 latest 变化。
  • 额外的运行参数:环境变量 OMV_PHOTOPRISM_APP_CONTAINER_START_OPTIONS 和 OMV_PHOTOPRISM_DB_CONTAINER_START_OPTIONS 可以给容器追加 podman run 参数。
  • 卸载插件:移除 systemd 单元和 PhotoPrism 的镜像,数据库和 Caddy 的镜像留在 Podman 里,可以在 Podman 页面手动删除;原图和应用数据不会被删。

常见问题 ​

应用时报错,提示拉取镜像失败。 通常是访问不了 Docker Hub。检查网络,或用上面的环境变量换成可访问的镜像地址。

页面能打开但索引没有结果。 确认 图片 选对了目录,容器能读它(photoprism 用户或 users 组),再在 PhotoPrism 里手动开始索引。

忘了管理员密码。 到 PhotoPrism 的账户设置里改;忘了就看上游文档的重置方法,不要手改数据库。

想让手机自动上传。 这不是它的强项,看 Immich。

参考资料 ​

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。