Photoprism教程:建立你的私人云相册

几周前我讲了 photoprism 这个开源的软件, 可以帮助你很好的管理你的相册及视频. 在那篇文章中我对 photoprism 做了大致的介绍与说明.

如果你想了解 photoprism, 可以参阅用开源的 photoprism 来打造你个人的专属 Google Photo

这篇文章主要是再简单的说下如何安装与使用它. 主要包括

  • 前提条件
  • 安装 photoprism
  • 导入及索引你的相片
  • 互联网访问策略
  • 相册及视频的同步与备份策略

前提条件

其实我认为最重要的前提条件是折腾的意愿

折腾的意愿

使用一款开源软件,而不是现成的阿里云盘等现成的免费或 SAAS 服务, 最重要的是你有这种折腾的意愿. 而折腾则意味着你要去搜索资料,去学习,去尝试等.

折腾有好有坏, 好处在于你能学到很多, 而折腾一个自己的相册管理程序, 更能让你更安全,更可靠的管理你自己的相册数据, 不用担心哪一天某个云服务不提供服务了或要收费了.

当然坏处就是你需要付出时间与成本. 不过付出才有可能会有收获.

懂一点 LinuxDocker 相关的知识

安装 photoprism 等一系列操作, 都需要你懂一点 Linux 与 Docker.

当然对于程序员来说, 这可能不是个大问题. 但对于非程序员来说, 这个门槛足够高了. 当然如果你愿意学习, 问题也不大.

服务器资源

部署自己的私有的东西, 你得准备自己的服务器资源. 可以是:

  • 云服务资源 (如阿里云服务器等)
  • 家庭私有服务器
  • 自己的电脑或笔记本

我就是用的一个 2014 年的旧款 Mac Mini 搭建了一个家庭私有 Linux 服务器, 虽然这个 8G 的旧 Mac 很老了,但在上面装个 Debian, 搭建一堆自己的东西的确非常方便.

当然,你没有的话,就考虑使用自己的电脑或笔记本吧. 安装在上面, 有需要再启动及使用, 毕竟相片并不是时时需要在线的.

安装 photoprism

  1. 准备一个服务资源

如上面所说的, 可以是云服务,你自己的家庭服务或自己的电脑都可以.

操作系统不限, Windows, MacOS 以及 Linux 都支持

最低资源需求: 2 cores, 3 GB

  1. 准备好 Docker 环境

photoprism 是基于 GO 语言的一款工具. 你当然可以选择在本地安装 GO, 在运行它.

但相比这种方式,我个人更偏好 Docker 的方式来部署. 简单,方便,易于迁移.在这篇文章中, 我也只介绍基于 Docker 的方式来安装 photoprism. 如果你想原生 GO 来使用 photoprism, 建议访问官网来了解.

关于 Docker 环境, 这个东西 Linux 还好说, 对于 Windows 与 MacOS, 我建议

  • MacOS: 考虑使用 orbstack(商业软件,对个人免费)或 lima(开源软件)
  • Windows: 使用 WSL Linux 子系统

不是非常建议使用 Docker Desktop 这个软件, 特别是在 Windows 下, 体验非常不好, 而且镜像体积巨大.

另外, 安装好 docker-compose 工具, 我会使用 docker-compose 来部署. 因为 docker-compose 的配置是写在 yml 中, 这样比较容易修改与查看部署的各种配置信息.

关于如何安装 Docker 以及 Docker Compose 不再这篇文章的范围之内. 建议参阅官网.

  1. 确定你的数据库

photoprism 支持几种不同的数据库, 主要是 SQLite 3 以及 MariaDB 10.5.12 +. 确定你想使用的数据库, 其中 SQLite 是一个嵌入式简单的数据库.

如果只是想体验或尝试,使用 SQLite 就可. 如果想把它做为正式使用, 当然就得选择 MariaDB 了.

另外, MySQL 已不再被支持了, photoprism 官网说是 MySQL 新版本缺失了一些特性.

  1. docker-compose 配置

创建一个空目录

在合适的地方创建一个空目录, 比如名为photo, 我们会把配置以及数据存储在这个目录下.

同时,在这个目录下创建三个子目录,分别是import,originals,storage,以及一个空文件docker-compose.yml

目录的整体结构大致如下:

photo├── docker-compose.yml├── import├── originals└── storage

三个子目录后面会解释具体用处

编辑 docker-compose.yml

编辑 docker-compose.yml 文件,在里面写入如入内容

version: '3.5'
services: photoprism: image: photoprism/photoprism:latest container_name: photoprism stop_grace_period: 10s restart: always security_opt: - seccomp:unconfined - apparmor:unconfined ports: - "2342:2342" environment: PHOTOPRISM_ADMIN_USER: "admin" # 用户名 PHOTOPRISM_ADMIN_PASSWORD: "admin1234" # 用户密码(不少于8位) PHOTOPRISM_AUTH_MODE: "password" # 授权模式, public 或 password
# 数据库配置, 这里配置了sql PHOTOPRISM_DATABASE_DRIVER: "sqlite" # 使用内置的SQLite数据库
# 正式使用,建议使用mariadb数据库
#PHOTOPRISM_DATABASE_DRIVER: "mysql" # 使用MariaDB 10.5 以上的数据库 #PHOTOPRISM_DATABASE_SERVER: "192.168.50.16:3306" # MariaDB数据库地址 (hostname:port) #PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB数据库名称 #PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB用户名 #PHOTOPRISM_DATABASE_PASSWORD: "photoprism" # MariaDB密码
# 网站标题 PHOTOPRISM_SITE_CAPTION: "我的相册"
working_dir: "/photoprism" # 不要改动这一项
volumes: - "./originals:/photoprism/originals" # 原始照片目录 - "./import/Z:/photoprism/import" # 待导入照片目录 - "./storage:/photoprism/storage" # photoprism程序产生的各种缓存,文件,索引等目录

如果你使用过 docker-compose, 上面这些就非常你应该能很快读懂.

其中,最主要的是几个环境变量设置

  • PHOTOPRISM_ADMIN_USER, PHOTOPRISM_ADMIN_PASSWORD,PHOTOPRISM_AUTH_MODE: 这三项是设置基本的登录方式及初始用户名密码 (后续可进入系统修改密码)
  • PHOTOPRISM_DATABASE_DRIVER: 数据库模式, sqlite 或 mysql. 这份配置中使用了 sqlite
  • PHOTOPRISM_DATABASE_DRIVER等: MariaDB 数据库地址设置 (请注意, photoprism 不再支持 mysql), 如果要使用 mysql, 请取消这些参数前面的#注释符号并把PHOTOPRISM_DATABASE_DRIVER值改为mysql
  • PHOTOPRISM_SITE_CAPTION: 自定义网站标题

关于三个目录

  • originals: 原始照片目录, 你可以把你存在的照片放在这个目录
  • import: 待导入照片, 这个目录的照片会等待导入并被 photoprism 处理 (处理是指对照片做分析与索引,存入原始目录等)
  • storage: 这个目录是 photoprism 程序产生的各种文件,比如索引照片缩略图,缓存

需要注意,这份配置中只列出了最基本必须的一些设置项, photoprism 可以配置的项非常多, 建议参考官网文档了以解.

启动服务

进入photo目录,使用如下命令启动

docker-compose up -d

第一次启动会下载镜像需要一些时间, 启动完成没有问题就可以使用了.

访问 http://127.0.0.1:2342 , 如果没有意外,你就能看到登录页面了

Photoprism教程:建立你的私人云相册

登录页面

使用刚刚配置中的用户名密码登录就可以了. 登录进去会发现什么都没有, 当然, 这是因为我们没有还没有导入照片.

第一次导入及索引

基于 Docker 来安装 photoprism 其实非常简单. 这也是我推荐大多数情况下都用 Docker 的原因. 不用操心各种环境, 依赖等问题.

但你现在会发现,你还没有任何照片视频. 你现在的需求其实是两个:

  • 导入旧有的存在的相片
  • 后续如何同步新的相片

先讲下如何导入旧的存在的相片并完成索引. 所谓索引是指对照片的信息元数据,比如地点,大小,拍摄时间等做提取, 同时对照片生成各种大小的缩略图照片. (你在 UI 上看到的小图,其实是缩略图,而不是原照片)

那如何导入你存在的相片并完成索引呢?

前面的配置文件中,提及了两个目录, 一个是originals,另一个是import. 旧有的相片可以放在import目录下, 也可以放在originals目录下.

那究竟放在哪个目录?

originals

originals是 photoprism 存放相片原文件的地方. 所有 photoprism 的相片最终的原文件,都在这个目录下.

你可以把已有的旧相片直接放到这个目录下.

但是, 由于 photoprism 没有对你这些已存在的相片做索引, 所以你需要在 UI 上触发一个全量索引操作.

Photoprism教程:建立你的私人云相册
全量索引

进入资料库, 然后点击索引

在这里,你可以做一次完全重新扫描

import

你也可以把存在的照片放到import目录下.

然后在资料库导入页中, 选择你的目录, 导入你的照片.

Photoprism教程:建立你的私人云相册
导入相片

区别与选择

好吧,你可能会有点困惑, 似乎随便放哪一个目录都可以. 其实不是的, 它们是有区别的.

它们之间的共同点是:

  • 都会对照片做索引, 也就是提取照片的元数据及生成缩略图等

不同点在于

  • import目录下的照片,会按照日期重新进入命名,并将其存入originals目录下.
  • import相当于一个待处理的临时目录, 而originals则是你原始照片存放的真正目录

建议

所以, 你的已有照片究竟是放import还是originals, 关键点在于你是否希望 photoprismt 重新命名你的照片.

  • 如果你的照片是已经有规则存放好的, 就把它放在originals,
  • 否则把它放import中, 让程序按照日期重新整理你的照片,是个非常不错的选择.

需要注意的是, 索引是非常耗时的操作, 我当时 7-8 千张照片,索引花费了几个小时.

重新整理后的效果目录如下:

2000└── 01    ├── 20000101_090020_04FF387A.jpg    ├── 20000101_090026_E7546984.jpg    ├── 20000101_090027_4B306DB8.jpg    ├── 20000101_090050_63B2D167.jpg    ├── 20000101_090100_D17AE19A.jpg    ├── 20000101_090111_D8648B18.jpg

上面这个就是,2000 年,01 月份的相片, 每个相片都以时间 + 随机码来命名.

我迁移相片时, 本来非常杂乱, 经过 photoprismt 这么一处理, 变成了按日期存储的非常有规律的文件了.

后续

到上面这步完成后, 你已完全拥有了一个自己的相片程序了. 自己管理自己所有相片.

但这并不是一个完结, 事实上, 你可能还有很多问题或有待完善的地方, 比如:

  • 如何在各种设备上浏览这个服务?
  • 如果是在家里服务器部署的,如何映射外网访问?
  • 如何同步设备上的相片?
  • 如何备份我的相片以保证相片数据的安全?

受篇幅所限, 我这里只能简单讲下我的策略:

  • photoprism 对浏览器的支持非常好,在任何设备上都可以用浏览器访问.
  • 结合tailscale + 最便宜的阿里云服务器来映射外网访问
  • 使用filestash + webdav来做到批量上传相片
  • rsync来定期同步与备份原始相片数据到移动硬盘

这里面涉及一些开源的服务或工具, 后续有机会再分享.

但还是最开始那个话, 你得去折腾. 折腾是学习必不可少的一个部分.


原文始发于微信公众号(微言码道):Photoprism教程:建立你的私人云相册

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/248648.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!