yanchang
yanchang
发布于 2025-08-05 / 8 阅读
0
0

linux环境下部署Photoprism

碎碎念

使用Docker Compose,您可以使用 YAML 文件配置所有应用服务,以便通过单个命令轻松启动它们。继续操作之前,请确保您的系统上已安装Docker

这玩意是个照片管理软件,说实话,不好用。视频管理功能也有。

步骤 1:配置

下载官方的的compose.yaml示例(右键单击并将链接另存为...或使用wget)到文件夹,并根据需要更改配置:

wget https://dl.photoprism.app/docker/compose.yaml

sudoLinux 上的命令在非root 身份运行时可能需要以 开头。请注意,这会将主目录快捷方式~指向 配置文件部分/root中的。据报道,AppArmor 和 SELinux 等内核安全模块会导致问题volumes:

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

编辑 YAML 文件时,请确保相关值保持相同的缩进级别,并且列表以破折号 开头。如果环境变量的值包含文字$符号(例如密码中的符号),则必须使用$$(双美元符号)进行转义,例如"compo$e"变为"compo$$e"。

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

示例包含一个预配置的MariaDB数据库服务器。如果您移除它并且不提供其他数据库服务器凭据,则将在存储文件夹中创建SQLite数据库文件。本地SSD存储最适合任何类型的数据库。

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

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"

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

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

您可以选择挂载一个导入文件夹,以便将文件以结构化的方式传输到原始文件夹,从而避免重复,例如:

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

导入的文件将获得规范的文件名,并按年份和月份进行排序。切勿将导入文件夹配置在原始文件夹内,因为这会导致导入已编入索引的文件而形成循环。

第 2 步:启动服务器

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

docker compose up -d

请注意,我们的示例默认使用新docker compose命令。如果您的服务器尚不支持该命令,您仍然可以在 Red Hat 兼容发行版上使用docker-compose或。podman-compose

现在,通过导航到http://localhost:2342/打开 Web UI 。您应该会看到一个登录屏幕。使用通过配置的用户和初始密码登录。您可以在帐户设置页面更改它。启用公共模式将禁用身份验证。adminPHOTOPRISM_ADMIN_PASSWORD

在调试时保持 Docker 在前台运行会很有帮助,这样可以直接显示日志消息。为此,请-d在重新启动时省略该参数。

如果服务器已运行,或者您没有看到任何错误,则可能是您在其他主机和/或端口上启动了服务器。您的浏览器、广告拦截器或防火墙设置也可能存在问题。

PHOTOPRISM_ADMIN_PASSWORD应用程序首次启动后,您无法更改密码。要更改管理员密码,请docker compose exec photoprism photoprism passwd [username]在终端中运行命令。您也可以运行以下命令docker compose exec photoprism photoprism reset删除现有索引数据库并从头开始。

您可以随时在文件2中更改服务器端口和其他配置选项。请务必重启服务以使更改生效:compose.yaml

docker compose stop
docker compose up -d

DEUG

其中有一步容器内TensorFlow依赖包下载不完整导致解压失败重复启动尝试​​的迹象​

可能原因​:容器内网络访问限制无法使用代理进行外网下载

因此选择使用手动的方式进行下载,避免网络问题

宿主机下载后复制到容器​​

# 宿主机下载(华为云镜像)
wget https://dl.photoprism.app/tensorflow/amd64/libtensorflow-amd64-avx2-2.18.0.tar.gz

# 复制到容器
docker cp libtensorflow*.tar.gz photoprism-photoprism-1:/tmp/amd64/

# 容器内解压
docker exec photoprism-photoprism-1 tar -xzvf /tmp/amd64/libtensorflow*.tar.gz -C /usr

# 重启容器
docker restart photoprism-photoprism-1

自动启动:

[Unit]
Description=Docker Compose Photoprism
After=docker.service
Requires=docker.service

[Service]
Type=oneshot
RemainAfterExit=yes
User=yanchang
ExecStartPre=/bin/sleep 3
WorkingDirectory=/opt/photoprism
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose stop
Restart=on-failure
RestartSec=30s 

[Install]
WantedBy=multi-user.target                                                                                                                                                                              

老规矩设置开机自启动

sudo systemctl daemon-reload
sudo systemctl start photoprism.service
sudo systemctl enable photoprism.service

检查状态查看日志

systemctl status photoprism
journalctl -u photoprism.service -f


评论