828华为云征文|部署去中心化网络的 AI 照片管理应用 PhotoPrism
- 一、Flexus云服务器X实例介绍
- 二、Flexus云服务器X实例配置
- 2.1 重置密码
- 2.2 服务器连接
- 2.3 安全组配置
- 2.4 Docker 环境搭建
- 三、Flexus云服务器X实例部署 PhotoPrism
- 3.1 PhotoPrism 介绍
- 3.2 PhotoPrism 部署
- 3.3 PhotoPrism 使用
- 四、总结
一、Flexus云服务器X实例介绍
随着数字化转型的加速,云服务器已成为企业与个人开发者的首选。它提供了按需分配的计算资源,确保了灵活性和可扩展性,同时降低了维护成本。无论是构建网站、托管应用还是数据分析,云服务器都能提供强大而稳定的支持,让您的创意和业务在云端自由飞翔。
华为云下一代云服务器Flexus X实例
焕新上线,新产品提供与华为云旗舰级云服务器产品相同的单AZ 99.975%可用性,跨AZ 99.995%可用性,并且基于客户业务负载进行动态性能画像,智能推荐资源规格,持续优化性能和成本,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景。
Flexus X实例通过和其他服务组合,具备计算、镜像安装、网络、存储、安全等能力,您可根据业务需要灵活配置各资源。
本次测评使用的规格是:4核12G-100G-3M规格
的Flexus X实例基础模式
二、Flexus云服务器X实例配置
2.1 重置密码
购买服务器的时候可以提前设置用户名和密码,因为我这里跳过了,所以购买完成后需要重置密码,会短信或站内消息通过你的云服务器信息,重点是公网IP地址
和用户名,首先打开你的服务器控制台,选择重置密码
勾选自动重启,点击确定即可
2.2 服务器连接
华为云服务器提供了多种链接方式,如使用控制台提供的VNC方式登录、使用Linux/Mac OS系统主机登录Linux弹性云服务器(即ssh root@192.168.48.78
命令)或者使用Putty、Xshell等工具登录Linux弹性云服务器。
我个人习惯使用 MobaXterm
这款软件,添加SSH连接,输出公网IP
、用户名和端口(默认22),连接即可。
2.3 安全组配置
安全组是一个逻辑上的分组,为同一个VPC内的云服务器提供访问策略
。用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。
系统为每个网卡默认创建一个默认安全组,默认安全组的规则是对出方向上的数据报文全部放行,入方向访问受限。您可以使用默认安全组,也可以根据需要创建自定义的安全组
。
主要需要填写优先级
(默认填1即可)、协议端口
(协议一般为TCP
或UDP
,端口一般选择你项目需要暴露的端口即可),描述
(选填,一般会填写此端口的用途以免忘记了),其他默认点击确定即可。安全组配置主要是暴露端口可以给外网访问。
如果还不清楚可以参考文档:安全组配置示例
2.4 Docker 环境搭建
本次服务器环境是ubuntu系统镜像,需要自己安装docker环境
服务器类别 | 系统镜像 | 内网IP地址 | Docker版本 | 操作系统版本 |
---|---|---|---|---|
Flexus云服务器X实例 | Ubuntu | 192.168.0.168 | 27.2.0 | Ubuntu 22.04.4 LTS |
使用apt-get
命令安装docker及其配置
# 安装必要工具包
$ sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common# 添加Docker GPG秘钥
$ sudo curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -# 配置仓库源
$ sudo add-apt-repository \"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \$(lsb_release -cs) \stable" # 更新apt包索引
$ sudo apt-get update# 安装docker
$ sudo apt-get install docker-ce docker-ce-cli containerd.io# 添加docker镜像源
$ sudo vim /etc/docker/daemon.json{"registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com/","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://ccr.ccs.tencentyun.com/","https://docker.m.daocloud.io/","https://dockerproxy.com",]
}
# 重启
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
测试docker
安装是否成功
root@flexusx-c6b3:~# docker -v
Docker version 27.2.0, build 3ab4256```
检查docker
服务状态
root@flexusx-c6b3:~# systemctl status docker
* docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2024-08-30 15:53:45 CST; 17h ago
TriggeredBy: * docker.socketDocs: https://docs.docker.comMain PID: 24912 (dockerd)Tasks: 13Memory: 24.7MCPU: 3.778sCGroup: /system.slice/docker.service`-24912 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
检查docker compose
版本
root@flexusx-c6b3:~# docker compose version
Docker Compose version v2.29.2
三、Flexus云服务器X实例部署 PhotoPrism
3.1 PhotoPrism 介绍
PhotoPrism 是一款适用于去中心化网络的 AI 照片应用。它利用最新技术自动标记和查找图片,不会妨碍您。您可以在家中、私人服务器或云端运行它。
- 浏览所有照片和视频,无需担心RAW 转换、重复或视频格式
- 使用强大的搜索过滤器轻松找到特定图片
- 识别你的家人和朋友的面孔
- 根据图片内容和位置自动分类
- 将鼠标悬停在相册和搜索结果中的实况照片上即可播放实况照片
- 由于用户界面是一个渐进式 Web 应用程序,它提供了类似原生应用程序的体验,您可以方便地将其安装在所有主要操作系统和移动设备的主屏幕上
- 包含四张高分辨率世界地图,让您重温最喜爱的旅行回忆
- 从 Exif、XMP 和其他来源(例如 Google Photos)提取并合并元数据
- 还可以搜索更多图像属性,如颜色、色度和质量
- 使用PhotoSync在后台安全备份 iOS 和 Android 手机
- WebDAV 客户端(例如 Microsoft 的 Windows Explorer 和 Apple 的 Finder)可以直接连接到 PhotoPrism,这样您就可以打开、编辑和删除计算机上的文件,就像它们是本地文件一样
在数字化时代,我们拍摄、储存和分享照片的方式发生了革命性的变化。如何有效管理海量的图片是许多人的困扰,而PhotoPrism网站为这一问题提供了一种创新的解决方案。无论是在家中,私人服务器上,还是云端,用户都可以便捷地运行PhotoPrism以管理其照片库。把繁杂的图片管理工作变得简单高效,无论您是摄影爱好者还是专业人士,都很推荐尝试这个工具。
- 官网:https://www.photoprism.app/
- Github:https://github.com/photoprism/photoprism
3.2 PhotoPrism 部署
- 系统要求
- 必须安装:Docker环境
- 支持设备:Mac/ Linux/ Windows
- 硬件建议:2核3G以上
- 获取docker-compose.yml
官方建议使用Docker Compose,因为它比纯 Docker 命令行界面更简单,并且为运行多个服务提供了更多便利。
wget https://dl.photoprism.app/docker/docker-compose.yml
- 启动服务
进入项目目录,执行docker run
启动命令,会自动拉取容器并运行
从 Dockerhub 拉取 Photoprism 镜像,地址:https://hub.docker.com/r/photoprism/photoprism
root@flexusx-c6b3:~/photoprism# docker-compose up -d
Creating network "photoprism_default" with the default driver
Pulling watchtower (containrrr/watchtower:latest)...
latest: Pulling from containrrr/watchtower
57241801ebfd: Pull complete
3d4f475b92a2: Pull complete
1f05004da6d7: Pull complete
Digest: sha256:6dd50763bbd632a83cb154d5451700530d1e44200b268a4e9488fefdfcf2b038
Status: Downloaded newer image for containrrr/watchtower:latest
Pulling mariadb (mariadb:11)...
11: Pulling from library/mariadb
dafa2b0c44d2: Pull complete
2d5e0d69d765: Pull complete
5145df719521: Pull complete
ffe11d25f6ee: Pull complete
f0eb027ac47e: Pull complete
586260156254: Pull complete
62c80f8d2eea: Pull complete
36be09cfdba3: Pull complete
Digest: sha256:4066f2d4805fef72a83cf4a62689a0aadb6e83a8c8a82b64431edd4b94f684f8
Status: Downloaded newer image for mariadb:11
Pulling photoprism (photoprism/photoprism:latest)...
latest: Pulling from photoprism/photoprism
31e907dcc94a: Pull complete
fa1abcc626a4: Pull complete
f52a46d9b619: Pull complete
4f4fb700ef54: Pull complete
8e483297a9a6: Pull complete
5706be3315f4: Pull complete
Digest: sha256:1f14335e2cd9dfaadc555ac8d40aa8a3966a5b5e5ef88fa78973ef7e8673fa2b
Status: Downloaded newer image for photoprism/photoprism:latest
Creating photoprism_mariadb_1 ...
Creating photoprism_watchtower_1 ...
Creating photoprism_watchtower_1
Starting photoprism_mariadb_1 ... done
Creating photoprism_photoprism_1 ... done
- 配置安全组
在Flexus云服务器X实例的安全组管理页面,添加入方向规则,接下来我们启动服务需要监听2342端口,所以添加安全组为TCP:2342
协议端口。
- 检查容器状态
检查 PhotoPrism 容器状态,确保容器正常启动
root@flexusx-c6b3:~/photoprism# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
086b398e5e56 photoprism/photoprism:latest "/scripts/entrypoint…" 8 minutes ago Up 8 minutes 0.0.0.0:2342->2342/tcp, :::2342->2342/tcp, 2442-2443/tcp photoprism_photoprism_1
7d75ead11b26 mariadb:11 "docker-entrypoint.s…" 15 minutes ago Up 8 minutes 3306/tcp photoprism_mariadb_1
7f9821742e52 containrrr/watchtower "/watchtower" 15 minutes ago Up 8 minutes (healthy) 8080/tcp photoprism_watchtower_1
- 访问地址
内网:http://localhost:2342
外网:http://公网IP:2342
- 访问结果
若出现此页面,则部署 photoPrism server 成功。
3.3 PhotoPrism 使用
根据 docker-compose.yml
中配置的管理员帐号密码,输入然后登录
PHOTOPRISM_ADMIN_USER: "admin"
PHOTOPRISM_ADMIN_PASSWORD: "insecure"
首先我们需要进入 Settings - GENERAL,然后将语言设置为简体中文
首页展示了 PhotoPrism 的主要功能点,左侧功能栏:搜索、相册、视频、人物、收藏、瞬间、日历、地点、标签、文件夹、私有、资料库、设置,上侧功能栏包含全局搜索、刷新、切换视图、上传、展开条件搜索
添加相册,这个是直接创建的相册,没有选择输入相册名
选中后,在右下角功能菜单中,可以编辑相册,修改名称,可以添加位置、描述和分类
点击进入创建的相册,选择右上角的上传按钮,选择文件进行上传
上传完成,索引比较耗时,会提取照片的元数据及生成缩略图等,并且非照片和低质量图像出现在搜索结果中前需要进行审查
上传完成,导入照片的过程中会按照日期重新整理照片,并对照片重命名,最终都存放在 /photoprism/originals
文件夹下
查看文件目录如下,可以看到照片都被放在 2024 目录下,这是并且按照月份创建子目录,每个照片都以时间 + 随机码来命名
root@dev-fj-srv:~/Pictures# tree -L 3
.
`-- 2024|-- 02| |-- 20240227_181305_186F3D3A.jpg| `-- 20240227_192903_88B64E51.jpg`-- 09|-- 20240924_122440_55C78CF6.jpg|-- 20240924_122440_885EB45B.jpg3 directories, 64 files
使用强大的搜索过滤器轻松查找特定照片和视频。您的图片会根据其内容和位置自动分类。还可以搜索更多图像属性,如颜色、色度和质量。标记为私人、已存档或正在审核的图片不会出现在常规搜索结果中
如果上传的图片包含任务,会自动识别人脸信息
自动创建特殊时刻、旅行和地点相册
地点相册
自动添加标签,并分类展示
文件夹分类
展开资料库,可以查看源,这就是上传的文件的目录,单击文件夹即可打开该文件夹
单击文件即可打开其编辑对话框,查看图片信息,很丰富的元数据信息
查看资料库设置,包括索引、导入和日志信息
设置的选项也很多,在常规设置选项卡中,您可以配置基本用户界面设置以及地点中的地图,在高级设置页面中更改系统配置选项(例如图像质量),还可以禁用特定功能并启用调试或只读模式,资料设置仅供超级管理员使用,账户设置即个人信息设置
预览视频,界面很简单,可以全面无边框播放
预览图片,可以幻灯片播放、全屏、收藏、编辑等操作
如今我们每个人都积累了海量的照片和视频,自媒体人们积累的照片和视频数量可能更多,面对这么多的照片和视频,我们该如何管理呢?PhotoPrism 就是一个很全面的解决方案,强大的支持智能整理,让你轻松管理和浏览生活中的每一张照片。作为整理图片和视频的数据中心的基本使用就是这样了,比如上传、添加相册、修改相册和图片信息等,还有强大的检索能力,还有更多有趣的设置和功能就需要自行探索了。
四、总结
PhotoPrism像是一位体贴的数字助理,把繁杂的图片管理工作变得简单高效。无论您是摄影爱好者还是专业人士,这款平台都会成为您不可或缺的工具。因为其界面直观且功能强大,新用户通常能在短时间内掌握操作要领,查看详细的用户指南与演示,帮助他们更好地熟悉并发挥平台的全部潜力。此次使用的Flexus X实例
配置还是很高的4核12G-100G-3M规格
的基础模式
,对照片库进行自动扫描和索引,并生成智能标签以供查找和分组,整个过程没有出现延迟卡顿现象,只不过索引时间挺长的,但是这项目的索引器的确比较耗内存。
在探索PhotoPrism这个强大的AI照片管理工具后,是时候为您的项目寻找一个强大而可靠的家了。现在正进行828 B2B企业节
,华为云服务器以其卓越的性能、稳定性和安全性,为您提供了理想的部署环境。现在立即行动,享受华为云服务器带来的优惠和福利。