跳到主要内容

PhotoPrism

更新于:2023年12月11日

实战-docker方式部署个人私有云相册-PhotoPrism-2023.12.10-测试成功

目录

[toc]

需求

目前为止:

自己的博客、知识库、图床、本地笔记解决方案已完全实现;

但相册功能还未实现,因为相册承载了一个人的回忆哇,但qq相册会压缩原图,百度云盘相册又不能很友好地对方提供访问服务,且基于数据完全可控原则,这里自己开始利用docker搭建自己的相册。

自己相册需求:

  • 需要分享的相册;(风景照、动物照、家人、自己、那份爱恋……)
  • 可以对相册加密,输入面后才可以访问;
  • docker方式部署;(那么我可以很方便地对相册源数据进行备份)
  • 需要计算资源比较小;
  • 希望相册可以支持对本地目录里的照片进行扫描;(这样也方方便数据迁移)
  • 另外,我希望用户只读,但不可以上传照片,或不可以下载照片,及对照片的权限可以做到细粒度的控制。

也就是要实现一个电子相册功能;

前提环境

  1. 具备docker环境

    https://onedayxyy.cn/docs/centos-docker-online-install

  2. 具备docker-compose环境

    https://onedayxyy.cn/docs/docker-compose

环境

  • 实验环境
ecs

docker-comose v2.23.0
docker-ce v19.03.9

photoprism镜像:
mariadb:10.11
photoprism/photoprism:latest
  • 实验软件

链接:https://pan.baidu.com/s/10TGERm-L2fzeM35HhBxyjQ?pwd=ndw6 提取码:ndw6 2023.12.10-PhotoPrism部署

1、部署

  • 创建一个文件夹
mkdir /home/photoprism
cd /home/photoprism
mkdir photos #/home/photoprism/photos
  • 下载配置文件
wget https://dl.photoprism.app/docker/docker-compose.yml
  • 修改配置文件

修改前内容:

[root@hg-ecs-docusaurus-wiki ~]# cd /home/photoprism/
[root@hg-ecs-docusaurus-wiki photoprism]# ls
database docker-compose.yml photos storage
[root@hg-ecs-docusaurus-wiki photoprism]# vim docker-compose.yml

……
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # server URL in the format "http(s)://domain.name(:port)/(path)"
……
- "~/Pictures:/photoprism/originals" # Original media files (DO NOT REMOVE)
……

修改后内容:

[root@hg-ecs-docusaurus-wiki ~]# cd /home/photoprism/
[root@hg-ecs-docusaurus-wiki photoprism]# ls
database docker-compose.yml photos storage
[root@hg-ecs-docusaurus-wiki photoprism]# vim docker-compose.yml
#需要注意配置文件中这两个地方,其他用默认就行

....
#这里改为自己服务器的域名或者不修改,端口号最好别改维持默认就行,这里填ecs ip/loalhost/域名都行的
PHOTOPRISM_SITE_URL: "http://localhost:2342/"
......
#这里的前面路径改为自己服务器上存放图片的位置
- "/home/photoprism/photos:/photoprism/originals"
......

  • 启动
[root@hg-ecs2 photoprism]# pwd
/home/photoprism
[root@hg-ecs2 photoprism]# ls
database docker-compose.yml photos storage
[root@hg-ecs2 photoprism]# docker-compose up -d

##可以看到,启动成功
[root@hg-ecs2 photoprism]# docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
photoprism-mariadb-1 mariadb:10.11 "docker-entrypoint.s…" mariadb 2 hours ago Up 2 hours 3306/tcp
photoprism-photoprism-1 photoprism/photoprism:latest "/entrypoint.sh phot…" photoprism 2 hours ago Up 2 hours 0.0.0.0:2342->2342/tcp
[root@hg-ecs2 photoprism]#

==2023年12月11日更新:==

这里我重新更新docker-compose.yml里为域名:

[root@hg-ecs-docusaurus-wiki photoprism]# pwd
/home/photoprism
[root@hg-ecs-docusaurus-wiki photoprism]# ls
database docker-compose.yml photos storage
[root@hg-ecs-docusaurus-wiki photoprism]# vim docker-compose.yml
……

PHOTOPRISM_SITE_URL: "http://47.100.215.163:2342/"
替换为
PHOTOPRISM_SITE_URL: "http://onedayxyy.cn:2342/"
……

重启服务:

[root@hg-ecs-docusaurus-wiki photoprism]# docker-compose down
[+] Running 3/2
✔ Container photoprism-photoprism-1 Removed 0.9s
✔ Container photoprism-mariadb-1 Removed 0.8s
✔ Network photoprism_default Removed 0.0s
[root@hg-ecs-docusaurus-wiki photoprism]# docker-compose up -d
[+] Building 0.0s (0/0) docker:default
[+] Running 3/3
✔ Network photoprism_default Created 0.0s
✔ Container photoprism-mariadb-1 Started 0.0s
✔ Container photoprism-photoprism-1 Started 0.1s
[root@hg-ecs-docusaurus-wiki photoprism]# docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
photoprism-mariadb-1 mariadb:10.11 "docker-entrypoint.s…" mariadb 11 seconds ago Up 9 seconds 3306/tcp
photoprism-photoprism-1 photoprism/photoprism:latest "/entrypoint.sh phot…" photoprism 11 seconds ago Up 9 seconds 0.0.0.0:2342->2342/tcp
[root@hg-ecs-docusaurus-wiki photoprism]#

验证:

http://onedayxyy.cn:2342/

注意:这里的数据是不会丢失的哦,因为使用了本地路径作为卷,并且这个卷被挂载到容器内部。

完美,符合预期。😘

2、测试

打开自己配置的地址http://localhost:2342/

就会出现登录界面,用户名和密码就是配置文件中的。

http://47.100.215.163:2342/

登录后,修改语言:

至此就安装完成,可以愉快的使用了。

3、使用

使用自己的文件源。

使用自己的文件源好处是保留了原始的文件结构。

之前在配置文件中配置了自己文件路径,把自己的图片上传到``里面,然后在‘资料库’中建立索引,就完成了。

[root@hg-ecs2 photoprism]# pwd
/home/photoprism
[root@hg-ecs2 photoprism]# ls
database docker-compose.yml photos storage
[root@hg-ecs2 photoprism]# cd photos/
[root@hg-ecs2 photos]# ls
高圆圆-好看照片
[root@hg-ecs2 photos]# ls 高圆圆-好看照片/
2.png 3.jpg beauty.jpg image-20211125160712620.png img-16168908375660dd648385e62a648f8261c9f65fe8218.jpg
[root@hg-ecs2 photos]#

这样源文件还在原来的位置,photoPrism中只保留索引,方便后期备份,只需要保护好自己的的文件目录就行。(非常nice😘)

4、效果

  • 最后,我把相册功能给添加到自己的博客站点上去了,完美

  • 我们再来看下本次ecs配置大小
2c,2g,40G硬盘,ecs规格

5、配置定时任务备份相册元数据

photos-rsync-linux-To-winodws.bat

rsync.exe -avPzruh  --port 8730 --password-file=/cygdrive/D/docusaurus/resource/shell/password.txt  root@47.100.215.163::cmi-photos/ /cygdrive/D/BaiduSyncdisk/PhotoPrism-photos-local

总结

PhotoPrism方式搭建云相册最大优点:

使用自己的文件源好处是保留了原始的文件结构。

之前在配置文件中配置了自己文件路径,把自己的图片上传到``里面,然后在‘资料库’中建立索引,就完成了。

这样源文件还在原来的位置,photoPrism中只保留索引,方便后期备份,只需要保护好自己的的文件目录就行。(非常nice😘)

另外,刚体验了一会儿,PhotoPrism很不错;

且PhotoPrism已近有33.3k github star,远远超过其他同类型方案;

至于在使用过程里,是否会有一些问题,待后续观察,反正自己照片的元数据也会被自己的rsync服务给同步到百度网盘做好数据备份的,完美;

参考

https://blog.csdn.net/anwebDesigner/article/details/129861796

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码 x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号 《云原生架构师实战》

image-20230107215126971

🍀 个人博客站点

http://onedayxyy.cn/

🍀 语雀

https://www.yuque.com/xyy-onlyone

🍀 csdn

https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎

https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!