利用photoprism搭建私有云相册
文章目录
- 一、背景
- 二、准备工作
- 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搭建私有云相册相关推荐
- 应对各类网盘关闭最有效方法以及使用Aria2+KodExplorer轻松搭建私有云存储
网盘在前几年打起了容量战,先后不断增加容量,让我们普通人感到占了大便宜,存片存游戏存音乐,后来开始加强管理,也就出现一批网盘关闭潮.实际上国内的不少网盘所给的容量华而不实,因为很少有人可以存满几个T的 ...
- nas java_小白入门NAS—快速搭建私有云教程系列(一)
什么是NAS 在日常的工作生活中,我们有大量的资料.文件需要存储在电脑或者其他终端设备中,但是这种方式需要电脑配备高容量的硬盘,而且需要随时随地的带着,这样是不是很麻烦? 那么,今天,我来介绍一种家庭 ...
- php对接AliGenie天猫精灵服务器控制智能硬件esp8266① 在阿里云购买搭建私有云服务器,配置 SSL 证书 ,做好准备工作!
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. php对接AliGenie天猫精灵服务器控制智能硬件esp82 ...
- 如何通过开源项目搭建私有云平台--第一步:安装Minio
从事K8s私有云平台研发工作差不多5年了,在国企由于不能使用开源工具,所以全部要自研,连K8s都要从二进制开始安装.但去到小厂,如果一切自研,太耗费成本,本系列文章,总结一下,如何通过开源的项目快速搭 ...
- linux搭建seafile_CentOS7+seafile搭建私有云盘测试过程记录
CentOS7+seafile搭建私有云盘测试过程记录 2017-11-01 08:00:00 48点赞 339收藏 43评论 自从360云盘免费取消后,网上能用的免费并且比较方便的网盘几乎只有百度了 ...
- 通过Docker或虚拟机快速搭建私有云平台--使用Nextcloud和ONLYOFFICE创建您的WebOffice云办公系统
原作者:Raj 转载来源:https://www.itzgeek.com/how-tos/linux/create-your-web-office-with-nextcloud-and-onlyof ...
- VMware+CentOS7搭建私有云桌面服务
VMware+CentOS7搭建私有云桌面服务 1. 安装VMware虚拟机工作台 官网下载安装包 版本:14.1.3 Pro 地址:https://my.vmware.com/en/web/vmwa ...
- 本地搭建私有云盘设定:设置群晖共享文件夹以及cpolar 4/5
系列文章 本地搭建私有云盘:虚拟机安装群晖NAS 1/5 本地搭建私有云盘:安装Synology Assistant 2/5 本地搭建私有云盘:群晖系统存储空间设置 3/5 本地搭建私有云盘设定:设置 ...
- xampp 可道云_Windows下用kodexplorer可道云在本地搭建私有云的步骤
本文介绍了如何以自己的windows电脑或者服务器为平台,使用kodexplorer可道私有云在本地搭建私有云 工具/原料 Xampp 安装包 新版本的KodExplorer可道云程序 使用Xampp ...
最新文章
- docker连不上宿主机mysql_宿主机连接docker中的mysql
- NSTimer不准确与GCDTimer详解
- java获取表主外键_通过 jdbc 分析数据库中的表结构和主键外键
- linux 基础学习之目录与文件处理命令
- 《天天数学》连载21:一月二十一日
- Python图像处理库PIL的ImageDraw模块之画出四边形
- 文本获取和搜索引擎中的反馈模型
- 计算机缺考学校知道吗,计算机二级机考缺考成绩单会不会显示缺考啊
- linux shell脚本 定义变量,Shell脚本应用 - 编制shell脚本、shell变量
- linux下echo /dev/ttys* 到字符设备文件,Linux系统的终端特殊设备文件
- 通过WORD精灵在Word中批量添加页码,批量添加或者删除页眉页脚
- VS2013好用的插件
- python的xlwt模块_Python xlwt模块
- 终于知道程序员为什么总是带个耳机了!
- 蓝牙mesh- Features和设备类型
- 数据源大盘点 | 你们要的数据源都在这儿了84个!(保持更新,建议收藏)
- 数据结构 :: 顺序栈与链式栈的设计与实现
- 数据堂将出席盖世汽车2021第三届汽车智能座舱与用户体验大会
- LeetCode1833-雪糕的最大数量
- java学习第十八天