生信喵 发表于 2024-9-23 06:47:33

PVE虚拟机内portainer安装photoprism

# 环境

基于portainer版本:1.24.2.和docker版本:19.03.5

# 背景

手机相册图片太多,备份到家用服务器,这时候选择一个相册软件,尤为重要。

我的要求:

支持网页上传

别的也没啥要求了,选择了PhotoPrism。

# 正文开始

# Docker部署

步骤可分为①拉取镜像.②映射端口.③映射目录路径.④添加环境变量.以下是每一步的分部教程。

# 准备几个存储卷

方便photoprism映射

物理来源pve硬盘,nfs映射

pve上建好目录结构
!(https://roim-picx-bpc.pages.dev/rest/q7PS1iK.png)

创建好存储卷
!(https://roim-picx-bpc.pages.dev/rest/2I3s1iK.png)

# 准备数据库

使用已安装的容器MariaDB。

登录之前创建的 phpMyAdmin 管理页面,为 PhotoPrism 创建专用数据库和账户。
点击管理页面 – 账户 – 新增用户账户
!(https://roim-picx-bpc.pages.dev/rest/Jt3cCiK.png)
用户名填写 photoprism,密码填写 insecure,勾选 创建与用户同名的数据库并授予所有权限,然后点击底部的执行。(账户和密码可自行修改)
!(https://roim-picx-bpc.pages.dev/rest/wAycCiK.png)

# 拉取镜像

1. 进入容器,添加容器
   !(https://roim-picx-bpc.pages.dev/rest/sndnXHK.png)
2. 编辑参数
   名称:photoprism

镜像源:photoprism/photoprism:latest

添加端口映射:

```
2342-2342 tcp
```

!(https://roim-picx-bpc.pages.dev/rest/5Mms1iK.png)

# 添加容器卷

网传:

```
      - "'自定义数据目录'/originals:/photoprism/originals"      # 存放导入到 PhotoPrism 的照片(需要你新建的 PhotoPrism 相册目录)
      - "'自定义数据目录'/storage:/photoprism/storage"          # 存放 PhotoPrism 的缓存、数据库等文件
      - "'原始相册目录':/photoprism/import"                     # PhotoPrism 会扫描这个目录,根据你的选择,复制或移动照片到 PhotoPrism 相册保存目录
      # - "/example/family:/photoprism/originals/family"      # *Additional* media folders can be mounted like this
```

我只设置了前面准备的2个存储卷
!(https://roim-picx-bpc.pages.dev/rest/VEW2CiK.png)

# 修改网络

!(https://roim-picx-bpc.pages.dev/rest/GW9DCiK.png)
关联到前面设置的数据库专用网络

# 添加环境变量

因为比较多,可以使用高级模式粘贴

可以自己调整如下

```
   PHOTOPRISM_ADMIN_PASSWORD: "insecure"          # 修改默认 admin 账户的密码,最少8位
   PHOTOPRISM_SITE_URL: "http://localhost:2342/"# public server URL incl http:// or https:// and /path, :port is optional
   PHOTOPRISM_ORIGINALS_LIMIT: 5000               # file size limit for originals in MB (increase for high-res video)
   PHOTOPRISM_HTTP_COMPRESSION: "gzip"            # improves transfer speed and bandwidth utilization (none or gzip)
   PHOTOPRISM_LOG_LEVEL: "info"                   # log level: trace, debug, info, warning, error, fatal, or panic
   PHOTOPRISM_PUBLIC: "false"                     # no authentication required (disables password protection)
   PHOTOPRISM_READONLY: "false"                   # do not modify originals directory (reduced functionality)
   PHOTOPRISM_EXPERIMENTAL: "false"               # enables experimental features
   PHOTOPRISM_DISABLE_CHOWN: "false"            # disables storage permission updates on startup
   PHOTOPRISM_DISABLE_WEBDAV: "false"             # disables built-in WebDAV server
   PHOTOPRISM_DISABLE_SETTINGS: "false"         # disables settings UI and API
   PHOTOPRISM_DISABLE_TENSORFLOW: "false"         # disables all features depending on TensorFlow
   PHOTOPRISM_DISABLE_FACES: "false"            # disables facial recognition
   PHOTOPRISM_DISABLE_CLASSIFICATION: "false"   # disables image classification
   PHOTOPRISM_DISABLE_RAW: "false"                # disables indexing and conversion of RAW files
   PHOTOPRISM_RAW_PRESETS: "false"                # enables applying user presets when converting RAW files (reduces performance)
   PHOTOPRISM_JPEG_QUALITY: 85                  # JPEG 图像质量,较高的值可减少压缩率(25-100)
   PHOTOPRISM_DETECT_NSFW: "false"                # flag photos as private that MAY be offensive (requires TensorFlow)
   PHOTOPRISM_UPLOAD_NSFW: "true"               # allows uploads that MAY be offensive
   # PHOTOPRISM_DATABASE_DRIVER: "sqlite"         # SQLite is an embedded database that doesn't require a server
   PHOTOPRISM_DATABASE_DRIVER: "mysql"            # use MariaDB 10.5+ or MySQL 8+ instead of SQLite for improved performance
   PHOTOPRISM_DATABASE_SERVER: "mariadb:3306"   # MariaDB or MySQL database server (hostname:port)
   PHOTOPRISM_DATABASE_NAME: "photoprism"         # MariaDB or MySQL database schema name
   PHOTOPRISM_DATABASE_USER: "photoprism"         # MariaDB or MySQL database user name
   PHOTOPRISM_DATABASE_PASSWORD: "insecure"       # 之前在 phpMyAdmin 创建 photoprism 账户时设置的密码
   PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App"
   PHOTOPRISM_SITE_DESCRIPTION: ""                # meta site description
   PHOTOPRISM_SITE_AUTHOR: ""                     # meta site author
   ## Run/install on first startup (options: update, gpu, tensorflow, davfs, clitools, clean):
   # PHOTOPRISM_INIT: "gpu tensorflow"
   ## Hardware Video Transcoding (for sponsors only due to high maintenance and support costs):
   # PHOTOPRISM_FFMPEG_ENCODER: "software"      # FFmpeg encoder ("software", "intel", "nvidia", "apple", "raspberry")
   # PHOTOPRISM_FFMPEG_BITRATE: "32"            # FFmpeg encoding bitrate limit in Mbit/s (default: 50)
   ## Run as a specific user, group, or with a custom umask (does not work together with "user:")
   # PHOTOPRISM_UID: 1000
   # PHOTOPRISM_GID: 1000
   # PHOTOPRISM_UMASK: 0000
   ## Start as a non-root user (see https://docs.docker.com/engine/reference/run/#user)
   # user: "1000:1000"
   ## Share hardware devices with FFmpeg and TensorFlow (optional):
   # devices:
   #- "/dev/dri:/dev/dri"                         # Intel QSV
   #- "/dev/nvidia0:/dev/nvidia0"               # Nvidia CUDA
   #- "/dev/nvidiactl:/dev/nvidiactl"
   #- "/dev/nvidia-modeset:/dev/nvidia-modeset"
   #- "/dev/nvidia-nvswitchctl:/dev/nvidia-nvswitchctl"
   #- "/dev/nvidia-uvm:/dev/nvidia-uvm"
   #- "/dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools"
   #- "/dev/video11:/dev/video11"               # Raspberry V4L2
   working_dir: "/photoprism" # do not change or remove
   ## Storage Folders: "~" is a shortcut for your home directory, "." for the current directory
```

图示如下(注意删除等号后面的双引号),可以删除上面的注释行和后面的文字注释。
!(https://roim-picx-bpc.pages.dev/rest/6R8eCiK.png)

# 修改重启策略为除非停止

!(https://roim-picx-bpc.pages.dev/rest/MwPQXHK.png)

网传的参数多余,我没有找到地方设置的如下:

```
   security_opt:
   - seccomp:unconfined
   - apparmor:unconfined
```

部署

打开ip+2342就可以登录和管理图片了。

# 遇到问题

!(https://roim-picx-bpc.pages.dev/rest/eHE3CiK.png)
打不开,原因是photoprism只有数据库的内部网络,需要再加一个外部的网络,即家里局域网的pc可以访问到他的网络。
点开容器,滑到最下方,加入网络,选择bridge加入。
!(https://roim-picx-bpc.pages.dev/rest/9o73CiK.png)

重新访问即可管理照片了。

http://localhost:2342

!(https://roim-picx-bpc.pages.dev/rest/x8U3CiK.png)

# 账号 admin 密码 PHOTOPRISM_ADMIN_PASSWORD 设置的值

如果您不是在本机安装,请不要忘记将 localhost 替换为安装设备的实际 IP 地址

如果您修改了默认的 HTTP 访问端口,请不要忘记将 2342 替换为您自定义的端口

# 必要时设置

更改系统语言
!(https://roim-picx-bpc.pages.dev/rest/eHT4CiK.png)
将照片导入到 PhotoPrism 相册目录
!(https://roim-picx-bpc.pages.dev/rest/J1DFCiK.png)
资料库-导入-上传。

# 后记

体验一段时间再谈体验吧,好像照片管理是nas的一个重点,也是群晖无法被自定义nas的docker替代的一点。

不过大家的确可以试试 photoprism,生命不息,折腾不止。
页: [1]
查看完整版本: PVE虚拟机内portainer安装photoprism