文章目录
PhotoPrism 简介
PhotoPrism® 是一款开源的人工智能照片管理程序。它在不妨碍您的前提下,利用最新技术自动标记和查找图片。您可以在家里、私人服务器或云端运行它。
功能概述
浏览所有照片和视频,无需担心RAW 转换、重复或视频格式问题
使用强大的搜索过滤器轻松查找特定图片
隐私友好:除非您明确将文件上传到其中一项服务,否则不会向 Google、Amazon、Facebook 或 Apple 发送任何数据
识别您的家人和朋友的面孔
根据内容和位置自动分类图片
通过将鼠标悬停在相册和搜索结果中来播放实况照片
由于用户界面是一个渐进式网页应用程序,它提供了一种原生应用程序般的体验,您可以方便地将其安装在所有主要操作系统和移动设备的主屏幕上
包括四个高分辨率世界地图,带回您最喜欢的旅行的回忆
元数据从 Exif、XMP 和其他来源(例如 Google 照片)中提取和合并
还可以搜索更多图像属性,例如Colors、Chroma 和 Quality
使用 PhotoSync 在 iOS 和 Android 手机后台进行安全的备份
WebDAV 客户端(如 Microsoft 的 Windows Explorer 和 Apple 的 Finder)可以直接连接到 PhotoPrism,让您可以像在本地计算机一样打开、编辑和删除文件
PhotoPrism 示例
PhotoPrism 提供了一个官方演示站点,您可以借助它来获得第一印象。
笔者的看法
之前老猪我一直使用 Google Photos 来备份和管理照片,因为众所周知的原因,它在国内的使用并不便利。
随着 Google Photos 不再免费作为催化剂,我将个人照片转移到了 iCloud Photos,但 iCloud Photos 同样有着多样问题,例如同样存在免费空间限额,使用非 iOS 设备体验不佳等问题。
后来,我发现了 PhotoPrism,你可以轻松将它部署在个人电脑、家中的 NAS、私人服务器或是云主机上,然后随时随地通过任意设备访问和管理。此外,所有的数据都在你的掌控下,完全没有隐私问题。
建设性意见
- 部署在数据中心、拥有公网 IP 地址的家用网络中,或是使用内网穿透,以便随时随地访问
- 部署在 7 x 24 运行的 Linux 服务器、NAS 网络存储或其它小型化设备上
- 部署在创建有 RAID 阵列的设备上可以避免硬盘损坏带来的严重后果
PhotoPrism 部署
快速安装
PhotoPrism 的安装简单到丧心病狂,在你安装了 docker 和 Portainer 的前提下,安装过程甚至用不了一分钟。
-
登录 Portainer 管理页面选择
local
-
点击左侧
Stacks
,在该页面中点击Add stack
-
为 Stack 命名,将官方提供的 配置模板 复制进去, 然后点击页面底部
Deploy the stack
完成创建
进阶安装
-
创建用于持久化存储 PhotoPrism 数据的目录(命名规则参考)
mkdir -p '自定义数据目录'/originals mkdir -p '自定义数据目录'/storage
- PhotoPrism 默认使用内建的 MariaDB 数据库来存储数据,考虑到它的应用是那么的广泛,我们应该避免未来多个 docker 应用各自运行独立的 MariaDB 数据库。因此,请先 安装 Docker 版本的 MariaDB 数据库和可视化数据库管理工具 phpMyAdmin ,这对节省系统资源和维护管理相当有用。
-
通过 Portainer 管理面板创建一个 PhotoPrism 和 MariaDB 专用的网络,此举可以提升安全性。
点击 Portainer 左侧
Networks
,点击右侧Add network
,在name
处输入photoprism-net
,然后直接点击页面底部的Create the network
完成创建。 -
将之前安装的 MariaDB 加入到刚才新建的
photoprism-net
网络中点击 Portainer 左侧
Stacks
,点击右侧列表中的mariadb-phpmyadmin
,切换到Editor
选项卡,加入红框内的内容, 然后点击页面下方的Update the stack
完成修改 -
登录之前创建的 phpMyAdmin 管理页面,为 PhotoPrism 创建专用数据库和账户。
点击管理页面 – 账户 – 新增用户账户
用户名填写
photoprism
,密码填写insecure
,勾选创建与用户同名的数据库并授予所有权限
,然后点击底部的执行。(账户和密码可自行修改) -
点击 portainer 控制面板左侧
Stacks
,在该页面中点击Add stack
-
为
Stack
命名,根据需要修改下文中提供的模板并粘贴到页面上,然后点击页面底部Deploy the stack
完成创建version: '3.5' services: photoprism: image: photoprism/photoprism:latest restart: always security_opt: - seccomp:unconfined - apparmor:unconfined ports: - "2342:2342" # HTTP 网页访问端口,例如要改为通过 6001 端口访问,就修改成 6001:2342 environment: 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 volumes: - "'自定义数据目录'/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 networks: - photoprism-net networks: photoprism-net: external: true
登录
创建成功后,你可以通过打开 Web 浏览器并转到以下位置登录到您的 PhotoPrism 实例:
http://localhost:2342 # 账号 admin 密码 PHOTOPRISM_ADMIN_PASSWORD 设置的值
- 如果您不是在本机安装,请不要忘记将
localhost
替换为安装设备的实际 IP 地址 - 如果您修改了默认的 HTTP 访问端口,请不要忘记将
2342
替换为您自定义的端口
必要设置
更改系统语言
将照片导入到 PhotoPrism 相册目录
特别说明
配置模板里带有中文注释的参数配置均可根据自身需求随意修改,我未翻译的参数配置不建议新手小白在首次安装时进行修改。
后期当你理解那些参数的意思了,可以按照进阶安装第 3 步来修改 PhotoPrism 的配置。
例如,我的安装设备是群晖 DS918 +,经确认,我可以与 FFmpeg 和 TensorFlow 共享硬件设备 Intel QSV
于是,上面的进阶配置中,我可以把这两行的注释取消,让设备拥有更好的硬件解码性能。
devices:
- "/dev/dri:/dev/dri" # Intel QSV