• 跳过至主导航
  • 跳过前往主要内容
  • 跳过至主侧边栏

三十而立

立志,躬行

  • 静女其姝

PhotoPrism 文档:使用 Docker Compose 进行设置

2025年2月14日 by glacier 请您留言

使用 Docker Compose,你可以使用一个 YAML 文件来配置所有应用程序服务,这样只需一条命令就能轻松启动它们。在继续之前,请确保您的系统已安装 Docker。它适用于 Mac、Linux 和 Windows。

此外,Podman Compose 还支持在兼容 Red Hat 的 Linux 发行版(如 RHEL、CentOS、Fedora、AlmaLinux 和 Rocky Linux)上替代 Docker Compose。

步骤 1:配置

下载我们的 compose.yaml 示例(右击并将链接另存为……或使用 wget)到您选择的文件夹,然后根据需要更改配置:

基于 AMD64 的 Linux 设备:
wget https://dl.photoprism.app/docker/compose.yaml
基于 ARM64 的 Linux 设备:
wget https://dl.photoprism.app/docker/arm64/compose.yaml
基于 ARMv7 的 Linux 设备:
wget https://dl.photoprism.app/docker/armv7/compose.yaml

如果不以 root 身份运行,Linux 上的命令可能需要以 sudo 作为前缀。请注意,这将在配置文件的 volumes: 部分把主目录快捷方式 ~ 指向 /root。有报告称 AppArmor 和 SELinux 等内核安全模块会导致问题。

我们建议服务器配置至少 4 GB 的交换空间,并避免设置硬性内存限制,因为当索引器暂时需要更多内存来处理大文件时,这会导致意外重启。索引 RAW 图像和高分辨率全景图可能需要超出建议最小值的额外交换空间和/或物理内存。

编辑 YAML 文件时,请确保相关值保持在同一缩进级别,列表以破折号开头。如果环境变量的值包含字面意义上的 $ 号,例如密码中的 $ 号,则必须用 $$(双美元符号)转义,这样 “compo$e ”就变成了 “compo$$e”。

始终更改 PHOTOPRISM_ADMIN_PASSWORD,以便应用程序以安全的初始密码启动。切勿在可公开访问的服务器上使用易于猜测的密码或默认值(如不安全)。如果没有提供密码,则没有默认值。密码长度至少为 8 个字符。

数据库

我们的示例包括一个预配置的 MariaDB 数据库服务器。如果删除它,并且不提供其他数据库服务器凭据,就会在存储文件夹中创建 SQLite 数据库文件。对于任何类型的数据库,本地固态硬盘存储都是最佳选择。

切勿将数据库文件存储在 USB 闪存盘、SD 卡或共享网络文件夹等不可靠的设备上。这些设备也可能会有意想不到的文件大小限制,对于不将数据分割成较小文件的数据库来说,问题尤其严重。

首次启动 MariaDB 后,就不能使用 MARIADB_PASSWORD 更改数据库密码了。不过,如果不与其他应用程序共享数据库或在网络上公开数据库,选择一个安全的密码并不是必要的。要在升级到新的主版本时启用模式自动更新,请确保 MARIADB_AUTO_UPGRADE 设置为非空值。

Volumes

您必须明确指定要从主机挂载的目录,因为 PhotoPrism 无法查看未共享文件夹中的文件。这是一项重要的安全功能,可实现灵活配置,无需更改任何其他变量。

重要的是,所有文件夹都要加载到持久卷。我们建议将示例中使用的相对路径更改为绝对路径,并避免使用已命名或匿名卷,以防止在重新创建容器(如更新 Docker 映像后)时可能丢失数据。

/photoprism/originals

originals 文件夹包含你的原始照片和视频文件。~/Pictures 将被默认挂载,其中 ~ 是你的主目录的快捷方式:

services:
  photoprism:
    volumes:
      - "~/Pictures:/photoprism/originals"

我们建议您将 ~/Pictures 改为现有媒体文件所在的目录,例如:

      - "/mnt/photos:/photoprism/originals"

其他目录可以挂载为 /photoprism/originals 的子文件夹(取决于叠加文件系统的支持情况):

    volumes:
      - "/mnt/photos:/photoprism/originals"
      - "/mnt/videos:/photoprism/originals/videos"

在 Windows 系统中,主机路径以驱动器代号为前缀,并使用 / 代替分隔符:

    volumes:
      - "D:/Example/Pictures:/photoprism/originals"

启用只读模式后,所有需要写入origals 文件夹权限的功能都会被禁用,例如 WebDAV、上传和删除文件。为此,请在 compose.yaml 文件的环境部分将 PHOTOPRISM_READONLY 设置为 “true”。2 此外,你还可以使用 :ro 标志挂载卷,这样 Docker 也会阻止写入。

/photoprism/storage

storage 文件夹用于保存配置、缓存、备份、缩略图和副卡文件。必须始终指定该文件夹,以免重启或升级后丢失这些文件。如果有条件,建议将 storage 文件夹放在本地 SSD 驱动器上,以获得最佳性能。也可以保留默认值,将文件存储在与当前目录相对应的文件夹中:

services:
  photoprism:
    volumes:
      - "./storage:/photoprism/storage"

切勿将 storage 文件夹配置在 originals 文件夹内,除非文件名以 . 开头,表示隐藏。如果以后想将实例转移到另一台主机上,最简单省时的方法就是将整个 storage 文件夹连同 originals 文件夹和数据库一起复制。

/photoprism/import

您可以选择挂载一个 import 文件夹,从该文件夹将文件有序地传输到 originals 文件夹,以避免重复等,例如:

services:
  photoprism:
    volumes:
      - "/mnt/media/usb:/photoprism/import"

导入的文件会收到一个规范文件名,并按年月进行整理。千万不要将导入文件夹配置在 originals 文件夹内,因为这样会导入已编入索引的文件,造成循环。

即使不指定导入文件夹,也可以通过网络上传和 WebDAV 添加文件,除非启用了只读模式或禁用了这些功能。

步骤 2:启动服务器

打开终端,切换到保存配置文件的文件夹。运行此命令在后台启动应用程序和数据库服务:

docker compose up -d

请注意,我们的示例默认使用新的 docker compose 命令。如果你的服务器还不支持它,你仍然可以使用 docker-compose,或者在兼容红帽的发行版上使用 podman-compose。

现在通过导航到 http://localhost:2342/ 打开 Web UI。你会看到一个登录界面。使用用户 admin 和通过 PHOTOPRISM_ADMIN_PASSWORD 配置的初始密码登录。您可以在账户设置页面进行更改。启用公共模式将禁用身份验证。

调试时保持 Docker 在前台运行可能会有帮助,这样就能直接显示日志信息。为此,请在重启时省略 -d 参数。
如果服务器已经在运行,或者没有发现任何错误,则可能是在不同的主机和/或端口上启动了服务器。也可能是浏览器、广告拦截器或防火墙设置出了问题。

首次启动应用程序后,就不能使用 PHOTOPRISM_ADMIN_PASSWORD 更改密码了。要修改管理员密码,请在终端运行 docker compose exec photoprism photoprism passwd [username] 命令。你也可以运行 docker compose exec photoprism photoprism reset 删除现有的索引数据库,然后从头开始。

服务器端口和其他配置选项可随时在 compose.yaml 文件中更改。切记要重启服务才能使更改生效:

docker compose stop
docker compose up -d

第 3 步:为资料库编制索引

我们的 “第一步 ”教程将指导您完成用户界面和设置,以确保根据您的个人偏好为您的资料库编制索引。

很简单,不是吗?

PhotoPrism 附加功能

我们的会员可以使用设置时创建的管理员用户登录,然后按照激活指南中描述的步骤激活其他功能。感谢您一直以来的支持,这对项目的成功至关重要!

我们建议新用户在注册会员之前先安装免费的社区版。

故障排除

如果您的服务器内存不足,索引经常被锁定,或其他系统资源不足:

  • 根据 CPU 性能和内核数量,尝试在 compose.yaml 文件中将 PHOTOPRISM_WORKERS 设置为合理的较小值,以减少 Worker 的数量。
  • 确保服务器配置了至少 4 GB 的交换空间,避免设置硬性内存限制,因为当索引器临时需要更多内存来处理大文件时,这会导致意外重启
  • 如果您使用的是 SQLite,请改用 MariaDB,它针对高并发进行了更好的优化
  • 作为最后一项措施,可以禁用 TensorFlow 进行图像分类和面部识别

其他问题?我们的故障排除清单可帮助您快速诊断和解决这些问题。

欢迎在社区聊天中寻求帮助。赞助商可通过电子邮件直接获得技术支持。在提交支持请求之前,请尝试确定问题的原因。

命令行界面

简介

PhotoPrism help 列出了当前版本中的所有命令和配置选项:

docker compose exec photoprism photoprism help

例如,使用 –help 标志可查看详细的命令说明:

docker compose exec photoprism photoprism backup --help

PhotoPrism 的命令行界面也非常适合使用调度程序实现作业自动化。

使用 Docker Compose 时,可以在要运行的命令前加上 docker compose exec [service] 以在指定的服务容器中执行。如果执行失败,找不到容器,请确保服务已经启动,你指定了一个现有的服务(通常是 PhotoPrism),并且你在配置文件所在的文件夹中。

打开终端

以默认用户身份打开终端会话:

docker compose exec photoprism bash

由于上述操作默认以 root 身份打开终端,因此我们建议,如果 PhotoPrism 是在特定用户账户下运行,则通过 -u 标志显式打开非 root 会话,例如:

docker compose exec -u 1000 photoprism bash

这就避免了在命令创建新文件或文件夹(如存储缩略图)时可能出现的文件系统权限问题。

更改用户 ID

在使用 Docker 和 Docker Compose 运行的所有命令中,都可以使用 -u 标志指定用户。在下面的示例中,为了简洁起见,省略了用户 ID。不过请注意,在没有明确用户 ID 的情况下运行的命令可能会以 root 用户身份执行。目前支持的用户 ID 范围是 0、33、50-99、500-600、900-1250 和 2000-2100。

我们建议通过在配置文件中设置用户服务属性或 PHOTOPRISM_UID 环境变量,以非 root 用户身份运行 PhotoPrism 服务。在进行更改时,不要忘记使用 chown 命令更新文件权限和/或所有权。

示例

动作指令
启动服务docker compose up -d
停止服务docker compose stop
下载更新docker compose pull
卸载docker compose rm -s -v
查看日志docker compose logs -f –tail=100
显示配置值docker compose exec photoprism photoprism show config
显示迁移状态docker compose exec photoprism photoprism migrations ls
重复失败的迁移docker compose exec photoprism photoprism migrations run -f
重置数据库docker compose exec photoprism photoprism reset –yes
备份数据库docker compose exec photoprism photoprism backup -i -f
还原数据库docker compose exec photoprism photoprism restore -i -f
更改密码docker compose exec photoprism photoprism passwd [username]
显示用户管理命令docker compose exec photoprism photoprism users help
重置用户账户docker compose exec photoprism photoprism users reset –yes
重置会话和访问令牌docker compose exec photoprism photoprism auth reset –yes
显示人脸识别命令docker compose exec photoprism photoprism faces help
索引面孔docker compose exec photoprism photoprism faces index
重置人物和面孔docker compose exec photoprism photoprism faces reset -f
将视频转码为 AVCdocker compose exec photoprism photoprism convert
重新生成缩略图docker compose exec photoprism photoprism thumbs -f
更新索引docker compose exec photoprism photoprism index –cleanup
移动到原始文件docker compose exec photoprism photoprism import [path]
复制到原始文件docker compose exec photoprism photoprism cp [path]

请注意,我们的示例默认使用新的 docker compose 命令。如果你的服务器还不支持它,你仍然可以使用 docker-compose,或者在兼容红帽的发行版上使用 podman-compose。

完全重新扫描
docker compose exec photoprism photoprism index -f 重新扫描所有原始文件,包括已经索引和未修改的文件。在重大升级和数据库模式迁移之后,尤其是在搜索结果丢失或不正确的情况下,这可能是必要的。请注意,您也可以从用户界面启动重新扫描,方法是导航至库 > 索引,选中 “完全重新扫描”,然后单击 “开始”。即使执行 “完全重新扫描”,手动输入的信息(如标签、人物、标题或描述)在编制索引时也不会被修改。

分类: PhotoPrism 文档

读者互动

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

主侧边栏

近期文章

  • Immich 文档:硬件转码
  • Immich 文档:反向代理
  • Immich 文档:Config File
  • Immich 文档:外部图库
  • Immich 文档:快速开始

近期评论

  • 一位WordPress评论者 发表在《世界,您好!》

归档

  • 2025 年 3 月
  • 2025 年 2 月
  • 2019 年 6 月
  • 2019 年 5 月
  • 2019 年 4 月

分类

  • Immich 文档
  • PhotoPrism 文档
  • 未分类

其他操作

  • 登录
  • 条目 feed
  • 评论 feed
  • WordPress.org

Copyright © 2025 · Genesis Sample on Genesis Framework · WordPress · 登录