文章目录

  • 一、背景
  • 二、准备工作
    • 2.1 硬件环境准备
    • 2.2 软件环境
    • 2.3 yml准备
  • 三、正式操作
    • 3.1 将yml文件上传至服务器
    • 3.2 运行docker-compose
    • 3.3 解决首次启动报错
    • 3.4 更新到开发预览版(可选)
    • 3.5 建立索引
  • 四、常用命令

一、背景

之前通过icloudpd已经实现了iPhone照片自动备份到NAS上,接下来该如何对NAS上存储的大量照片进行分类规整,并且可以随时随地很方便的查询与查看呢?
这次给大家介绍一个非常优秀的非常优秀的项目photoprism,它官方宣传语是:Browse Your Life in Pictures(用照片浏览你的生活)。使用了一段时间,类似google相册,功能基本比较全了,AI人脸识别与分类,打标签,日期,地图查看模式,业务体验还是比较满意的。
至于隐私问题,大家可以放心,这是github上一个开源的项目,所有人都可以查看它的源代码,所以不存在任何后门的问题,部署在自己的设备上,也更加安心。
我的部署方案依然是在软路由OpenWrt下,使用docker容器部署。
官网:https://docs.photoprism.app
GitHub源码:https://github.com/photoprism/photoprism添加链接描述

二、准备工作

2.1 硬件环境准备

官方推荐程序运行在具有 2 个内核、3 GB 物理内存、1 个和 64 位操作系统的服务器上。且交换空间不少于4GB。
但我的环境就是J4125物理机上PVE虚拟出来的OpenWrt,分配了4核,3G内存。

2.2 软件环境

OpenWrt(宿主系统)、docker、docker-compose

2.3 yml准备

下载官网提供的模板:
https://dl.photoprism.app/docker/docker-compose.yml
根据需要自行修改里面的参数,私有部署的话,初始和数据库密码可以用默认的,或者改成你自己的认为安全的密码,但PHOTOPRISM_DATABASE_PASSWORD值MYSQL_PASSWORD一定要相同。
重点是修改volumes挂载参数,冒号前面是你的宿主系统绝对目录,冒号后面是photoprism镜像中的目录,例如我的挂载配置如下:

  - "/mnt/sdb1/back_photos:/photoprism/originals"  #读取目录,例如你的照片存储在/mnt/sdb1/back_photos,就像我这这样一模一样的写,如果是别的目录,冒号前面就改成你实际的存储照片的目录- "/mnt/sda5/storage:/photoprism/storage"     #缩略图生成目录,这个一定要放到ssd硬盘并且一定要有足够大的存储空间,当照片多的时候,这个目录会非常大,实测5000张照片,大概占用9G左右- "/mnt/sda5/database:/var/lib/mysql"   #数据库目录,建议跟前面storage存储在同一个目录下

三、正式操作

3.1 将yml文件上传至服务器

将- "/mnt/sda5/database:/var/lib/mysql"上传至OpenWrt系统,我放到了/mnt/sdb5目录下。

3.2 运行docker-compose

使用cd /mnt/sda5命令进入存放yml文件的目录,然后使用如下命令运行docker-compose,此命令会自动拉取,并启动镜像:

docker-compose up -d

3.3 解决首次启动报错

看报错是网络错误,这是因为容器默认生成的网卡名,在宿主机的docker0网卡中没有写入相关的连接信息,需要运行/etc/init.d/dockerd restart,重新启动docker后,网络就可以连接成功,再运行docker-compose up -d

root@OpenWrt:~# docker-compose up -d
[+] Running 20/20_ photoprism Pulled                                                              180.8s_ f7a1c6dad281 Pull complete                                                    14.9s_ b377614b0f06 Pull complete                                                    15.0s_ 0c2c940e9554 Pull complete                                                    15.1s_ e9b5c0bf6a18 Pull complete                                                   138.1s_ ac1a42218ddd Pull complete                                                   138.2s_ 282a9f48d157 Pull complete                                                   153.8s_ 5f5b0580fa21 Pull complete                                                   154.2s_ mariadb Pulled                                                                 123.5s_ e0b25ef51634 Pull complete                                                    26.3s_ 8aa3f605beb6 Pull complete                                                    26.4s_ c43298fa9eba Pull complete                                                    29.9s_ f565e2a61005 Pull complete                                                    34.8s_ 3b5a73a7467f Pull complete                                                    37.0s_ d219b4dd5889 Pull complete                                                    42.3s_ 008719f0a8ad Pull complete                                                    44.4s_ aaeae3f278f1 Pull complete                                                    46.7s_ 70478b6487c6 Pull complete                                                    96.0s_ 3737f687ab8c Pull complete                                                    96.2s_ 380823a8f0a6 Pull complete                                                    96.2s
[+] Running 0/0_ Network root_default  Error                                                      0.0s
failed to create network root_default: Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-033ca13fda8b -j RETURN: iptables: No chain/target/match by that name.(exit status 1))
root@OpenWrt:~# /etc/init.d/dockerd restart
root@OpenWrt:~# ls
docker-compose.yml  icloudpddjz_config  icloudpdxdx_config
root@OpenWrt:~# docker-compose up -d
[+] Running 3/3_ Network root_default         Created                                             0.1s_ Container root-mariadb-1     Started                                             0.9s_ Container root-photoprism-1  Started                                             1.6s

启动后,打开ip:2342,使用默认的admin/insecure登录,登录后,在setting中可以修改成中文。

3.4 更新到开发预览版(可选)

我发现使用latest镜像有个问题,就是遇到文件夹是中文目录的时候,如果文件夹名字过长,会无法读取到这个文件夹下的照片,这对使用影响是非常大的,通过git issues查询得知,开发预览版修复了这个问题。
更新到开发预览版的官方描述方法如下:
You can test upcoming features and improvements by changing the image from photoprism/photoprism:latest to photoprism/photoprism:preview in your docker-compose.yml. Then pull the most recent image and restart your instance.
释意:
你可以通过在docker-compose.yml文件中,把镜像从latest修改成preview,然后pull,再重启你的实例,来测试新的功能特性。

3.5 建立索引

登录到photoprism后,系统是不会自动建立索引的,需要在界面"库"功能中,手动启动索引,或在后台运行索引命令。

四、常用命令

需要注意的是,docker-compose命令必须在docker-compose.yml文件所在目录下运行,否则无法执行。

启动服务 docker-compose up -d
停止服务 docker-compose stop
下载更新 docker-compose pull
卸载 docker-compose rm -s -v
查看日志 docker-compose logs --tail=100 -f
显示配置值 docker-compose exec photoprism photoprism config
重复失败的迁移 docker-compose exec photoprism photoprism migrations run --failed
重置数据库 docker-compose exec photoprism photoprism reset
备份数据库 docker-compose exec photoprism photoprism backup -a -i
恢复数据库 docker-compose exec photoprism photoprism restore -a -i
更改管理员密码 docker-compose exec photoprism photoprism passwd
显示用户管理命令 docker-compose exec photoprism photoprism users help
显示面部识别命令 docker-compose exec photoprism photoprism faces help
索引面 docker-compose exec photoprism photoprism faces index
重置人物和面孔 docker-compose exec photoprism photoprism faces reset -f
将视频转码为AVC docker-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 index -f

利用photoprism搭建私有云相册相关推荐

  1. 应对各类网盘关闭最有效方法以及使用Aria2+KodExplorer轻松搭建私有云存储

    网盘在前几年打起了容量战,先后不断增加容量,让我们普通人感到占了大便宜,存片存游戏存音乐,后来开始加强管理,也就出现一批网盘关闭潮.实际上国内的不少网盘所给的容量华而不实,因为很少有人可以存满几个T的 ...

  2. nas java_小白入门NAS—快速搭建私有云教程系列(一)

    什么是NAS 在日常的工作生活中,我们有大量的资料.文件需要存储在电脑或者其他终端设备中,但是这种方式需要电脑配备高容量的硬盘,而且需要随时随地的带着,这样是不是很麻烦? 那么,今天,我来介绍一种家庭 ...

  3. php对接AliGenie天猫精灵服务器控制智能硬件esp8266① 在阿里云购买搭建私有云服务器,配置 SSL 证书 ,做好准备工作!

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. php对接AliGenie天猫精灵服务器控制智能硬件esp82 ...

  4. 如何通过开源项目搭建私有云平台--第一步:安装Minio

    从事K8s私有云平台研发工作差不多5年了,在国企由于不能使用开源工具,所以全部要自研,连K8s都要从二进制开始安装.但去到小厂,如果一切自研,太耗费成本,本系列文章,总结一下,如何通过开源的项目快速搭 ...

  5. linux搭建seafile_CentOS7+seafile搭建私有云盘测试过程记录

    CentOS7+seafile搭建私有云盘测试过程记录 2017-11-01 08:00:00 48点赞 339收藏 43评论 自从360云盘免费取消后,网上能用的免费并且比较方便的网盘几乎只有百度了 ...

  6. 通过Docker或虚拟机快速搭建私有云平台--使用Nextcloud和ONLYOFFICE创建您的WebOffice云办公系统

    原作者:Raj  转载来源:https://www.itzgeek.com/how-tos/linux/create-your-web-office-with-nextcloud-and-onlyof ...

  7. VMware+CentOS7搭建私有云桌面服务

    VMware+CentOS7搭建私有云桌面服务 1. 安装VMware虚拟机工作台 官网下载安装包 版本:14.1.3 Pro 地址:https://my.vmware.com/en/web/vmwa ...

  8. 本地搭建私有云盘设定:设置群晖共享文件夹以及cpolar 4/5

    系列文章 本地搭建私有云盘:虚拟机安装群晖NAS 1/5 本地搭建私有云盘:安装Synology Assistant 2/5 本地搭建私有云盘:群晖系统存储空间设置 3/5 本地搭建私有云盘设定:设置 ...

  9. xampp 可道云_Windows下用kodexplorer可道云在本地搭建私有云的步骤

    本文介绍了如何以自己的windows电脑或者服务器为平台,使用kodexplorer可道私有云在本地搭建私有云 工具/原料 Xampp 安装包 新版本的KodExplorer可道云程序 使用Xampp ...

最新文章

  1. docker连不上宿主机mysql_宿主机连接docker中的mysql
  2. NSTimer不准确与GCDTimer详解
  3. java获取表主外键_通过 jdbc 分析数据库中的表结构和主键外键
  4. linux 基础学习之目录与文件处理命令
  5. 《天天数学》连载21:一月二十一日
  6. Python图像处理库PIL的ImageDraw模块之画出四边形
  7. 文本获取和搜索引擎中的反馈模型
  8. 计算机缺考学校知道吗,计算机二级机考缺考成绩单会不会显示缺考啊
  9. linux shell脚本 定义变量,Shell脚本应用 - 编制shell脚本、shell变量
  10. linux下echo /dev/ttys* 到字符设备文件,Linux系统的终端特殊设备文件
  11. 通过WORD精灵在Word中批量添加页码,批量添加或者删除页眉页脚
  12. VS2013好用的插件
  13. python的xlwt模块_Python xlwt模块
  14. 终于知道程序员为什么总是带个耳机了!
  15. 蓝牙mesh- Features和设备类型
  16. 数据源大盘点 | 你们要的数据源都在这儿了84个!(保持更新,建议收藏)
  17. 数据结构 :: 顺序栈与链式栈的设计与实现
  18. 数据堂将出席盖世汽车2021第三届汽车智能座舱与用户体验大会
  19. LeetCode1833-雪糕的最大数量
  20. java学习第十八天

热门文章

  1. 与,或,非,异或,左移,右移,位运算符号总结
  2. 联想拯救者Y7000加装内存条
  3. ZZULIOJ:1099: 角谷猜想(多实例测试)
  4. windows下测试磁盘读写(HD Tune)
  5. 【MAX78000基础案例演示】
  6. Arista中国战略升级 加码布局园区网络
  7. python宝典 宋强 pdf_Python宝典
  8. idea 手动导入 jar 包
  9. python改变数组形状_NumPy数组的变形(改变数组形状)
  10. 钱多多第二阶段冲刺04