绿联云8月版本docker套件更新前瞻,官方compose编排来了&丝滑好用的immich相册管理工具部署配置教程
全新的绿联云docker体验
绿联云新系统8月的外测版本真的太刺激了,又是一次内容超级长的大更新,老K在佛前苦苦求了几千年,终于得到允许,提前带大家体验下docker部分我最喜欢的更新内容😁,其他一些有意思的更新等官方宣布后老K也尽量赶时间做个体验视频/文章,分享给大家。
本次更新绿联云终于把docker compose项目编排给加入到内置的docker管理器中了,对喜欢玩docker的小伙伴们来说绝对是个超级重磅更新,本期教程就用支持AI大模型,免费开源,超级好用的相册备份管理工具--immich项目的部署,带大家体验下绿联云新系统的项目编排功能。
PS:大家可以先收藏起来,等更新后就可以部署体验了,如果等不及更新就想要用immich的小伙伴可以参考我之前的这个教程方法来进行部署使用。
如何升级使用绿联云的新版docker管理器
正式版推送后,保证自己客户端为最新版本,打开应用商店,更新docker管理器应用,确保docker管理器版本>=1.0.0.0281。
打开docker管理器,现在可以看到左侧多了个项目,这个就是docker compose项目编排入口,点击进入。里面可以看到我们当前通过项目部署过的所有应用。
点击项目名称或者右侧的三个点>控制台,可以进入具体的项目管理页面,这里面显示了项目下的所有容器,可以查看项目的日志,还可以随时修改docker-compose文件并重新进行部署,下面我们就用immich的部署给大家实战演示下项目编排有多方便。
immich演示
项目地址:
安卓用户可以到github上下载手机app,或者到google应用商店进行下载,苹果用户则直接到app store进行下载即可。
功能效果演示
可以通过自然语言直接搜索到相关的照片,准确度还不错。
支持自动生成人脸和地点合集,可惜的是目前的地点显示的还是英文,暂时还没找到更好的解决办法。
支持地图模式,web端可以看到地点照片预览和数量,点击去也可以看到详情。
手机客户端的地图还支持热力图,另外immich客户端默认的地图显示的是英文(目前版本web端放大后是中文,手机端放大后不显示地点),当然,全中文地图是有办法实现,但是目前发现immich官方教程里的地图商成分有点不好说,等后续再看是否有其他替代方案吧。
immich通过ddns后,可以在外网进行访问,相册或者相片还可以生成外网分享链接,他人通过分享链接可以直接查看对应的内容,自己可以选择是否提供下载或者上传权限等等,基本满足了我对相册功能的所有要求。
忍不住得夸一句,immich的手机端是真的丝滑,甚至能媲美手机内置的本地相册应用了,动图压缩过于厉害,大家大致感受下就好了,另外偷偷说一句,听说这次绿联云相册套件更新很惊喜,等更新了小伙伴们可以对比体验下。
immich部署
前期准备
先到docker共享文件夹下创建一个immich的子文件夹。
在创建的immich目录上右键>属性,点击地址后的复制键,将immich目录的绝对路径复制下来,保存备用,比如我这里/volume7/docker/immich。
再从我分享的度盘下载自然语言识别大模型和人脸识别大模型,下载完成后将压缩包上传到刚创建的immich目录下,上传完成后,选中右键点击解压缩到>此目录。
和下图核对下是否是一样的目录层级。
如果需要将nas上已有的照片也添加到immich中,则需要找到我们NAS上的照片目录,右键选择属性,将目录绝对路径复制下来,绿联云新系统这边一般来说是/home/xxxxx/Photos,如果你的照片存放在其他位置也是同样的方法进行获取,保存下来备用。
另外还需要创建一个upload目录作为immich的上传目录,这里要注意下,不要创建到个人文件夹的Photos目录下(不然绿联相册会把immich生成的缩略图再次生成一个绿联的缩略图),我这里先创建了一个media的共享文件夹再在media下创建了个upload子文件夹,同样的方法获取绝对路径并保存,比如我这里是/volume7/media/upload。
在本地电脑新建一个文本文档,并命令为.env,注意没有任何文件格式后缀,双击通过文本方式打开,将以下内容复制粘贴进去,其中UPLOAD_LOCATION后替换成你自己的upload目录对应的绝对路径,DB_USERNAME,DB_PASSWORD等号后的内容可以换成自定义的用户名密码,其他内容不用动。
UPLOAD_LOCATION=/volume7/media/upload DB_DATA_LOCATION=./postgres IMMICH_VERSION=release DB_PASSWORD=postgres DB_USERNAME=postgres DB_DATABASE_NAME=immich
修改完后将.env保存并上传到immich目录下,现在可以重新回到docker>项目中了,点击项目中的立即创建。
一键部署
将以下compose命令中的/home/koryking/Photos替换成你自己NAS本地相册目录的绝对路径,有多个路径则按照类似样式再添加一行映射,2283端口如果本地被占用的话,可以将这个换一个没有被占用的端口号,/volume7/docker/immich/cache换成你自己大模型解压出来的cache绝对路径,其他内容都不需要动,修改完成后,直接复制粘贴到compose配置中,项目名称填入immich,一定要保证项目名称和我们刚才创建的immich目录名称一致,勾选创建完成后立即运行,再点击立即部署即可开始镜像拉取和容器创建了。
PS:以下命令中默认提供了国内加速镜像源,但不能保证是否一直有效,如果失效了可以自己网上找下其他镜像源替换下,或者到镜像管理里填写docker代理地址,并将当前compose命令中的几个image前面加上井号,将有井号那几行image前的井号去掉,再粘贴进去进行部署。
name: immich
services:
immich-server:
container_name: immich_server
#image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
image: ghcr.nju.edu.cn/immich-app/immich-server:${IMMICH_VERSION:-release}
devices:
- /dev/dri:/dev/dri
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
- /home/koryking/Photos:/photo
env_file:
- .env
ports:
- 2283:3001
depends_on:
- redis
- database
restart: always
immich-machine-learning:
container_name: immich_machine_learning
#image: ghcr.nju.edu.cn/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
image: ghcr.nju.edu.cn/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
device_cgroup_rules:
- 'c 189:* rmw'
devices:
- /dev/dri:/dev/dri
volumes:
- /volume7/docker/immich/cache:/cache
- /dev/bus/usb:/dev/bus/usb
env_file:
- .env
restart: always
redis:
container_name: immich_redis
#image: docker.io/redis:6.2-alpine@sha256:328fe6a5822256d065debb36617a8169dbfbd77b797c525288e465f56c1d392b
image: docker.agsvpt.work/redis:6.2-alpine@sha256:328fe6a5822256d065debb36617a8169dbfbd77b797c525288e465f56c1d392b
healthcheck:
test: redis-cli ping || exit 1
restart: always
database:
container_name: immich_postgres
#image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
image: docker.agsvpt.work/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
healthcheck:
test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
interval: 5m
start_interval: 30s
start_period: 5m
command: ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
restart: always
volumes:
model-cache:
点击立即部署后,可以看到镜像拉取进度。
当弹框上方显示创建完成时,就可以点完成关闭弹框了。
可以看到immich已经显示运行中了。
immich配置
登录并注册管理员账号
到浏览器使用nasip:2283打开immich的web端(如果改了compose命令中2283端口号则修改成对应的值。),点击get started。
根据截图注册一个管理员账户,这个是注册在本地的,所以邮箱怎么填都行。
注册完后需要使用邮箱和密码登录下。
初始化设置
点击theme。
选择明亮或者黑暗模式,点击storage template。
存储模板默认是关闭的,这个可以根据自己需求,如果想要上传的图片按照一定的格式存储,则打开存储模板,并选择自己想要的存储格式,点击done。
切换中文语言
以上完成后就正式进入immich页面了,首选我们先点击右上角的用户头像,再点击Account Settings。
点击App Settings,找到language这一行,下拉框找到Chinese(Simplified),选择后即可切换成中文。
点击右上角的管理,可以在左侧的用户菜单创建其他用户。
点击设置菜单,找到机器学习设置,点开智能搜索,CLIP模型下的框框内改成XLM-Roberta-Large-Vit-B-16Plus,点击保存。
再点到视频转码设置,点开后往下翻。
找到硬件加速,选择快速同步,点击保存,不过目前实测硬件加速开启了之后视频转码有一点点用,但是用处不大,主要压力还是给到了CPU,暂时不确定是immich问题还是其他什么原因。
如果想要展示NAS上原有的图片视频,则点击左侧的外部图库,再点击右上角的创建图库,弹框再点击创建。
点击右边的三个点,点击编辑导入路径。
点击添加路径,路径填入/photo,也就是我们在docker compose命令中添加的原有相册文件夹映射到容器中的路径,点击弹框上的添加,如果映射了多个本地相册路径,则继续点击添加路径进行添加,全部添加完成后再点击页面右边的保存。
如果在相册目录下有路径想剔除不想进行扫描,可以再次点击三个点,选择扫描设置。
点击添加排除规则。
根据描述,添加剔除扫描的目录或者文件,比如添加剔除回收站内容,则填加一个/#recycle/。同样可以添加多个剔除规则,点击保存。
保存后,点击右上角的扫描所有图库,这个时候就可以在首页看到相片被加载出来了。
点击左上角的immich即可返回首页。
当然,也不是马上就全部展示好,还要经过生成缩略图、大模型自然语言标签识别、人脸识别等等一系列步骤。
具体的进度可以在右上角管理页面左侧的任务中查看,整个过程会持续比较长时间,多耐心等待下。
PS:因为涉及到大模型识别,cpu会占用非常高,风扇很响,温度升高都是正常现象,等任务中识别结束后即可恢复正常,另外人像识别结果需要等全部人像识别结束后才会展示到探索中,过程中没有为正常现象。
本来老K还做了中文地图的教程,但是因为一些特殊原因还是决定放弃这部分内容,别问为什么,问就是爱国。
最后
通过immich部署,大家可以看到绿联云的项目编排功能可以很方便的针对这种多容器应用来一键进行部署,对比之前需要一个容器一个容器进行镜像拉取,容器配置要方便太多了,而且在项目中还可以随时修改compose命令进行重新部署,方便后期的维护和管理,强烈建议喜欢玩docker的小伙伴把原本的docker都转移到项目中来进行管理,真的太香了。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
一片空白
校验提示文案
香稷馨香
校验提示文案
帅的_不明显
校验提示文案
败了个败
校验提示文案
yinhao
校验提示文案
一口一锅小布丁
校验提示文案
值友1171521650
校验提示文案
值友1035399408
校验提示文案
天冷人心暖
校验提示文案
iMatterJ
校验提示文案
第七军团
校验提示文案
Shadez
校验提示文案
leniou
校验提示文案
蓝色泡泡龙
校验提示文案
值友8592653091
校验提示文案
Shadez
校验提示文案
第七军团
校验提示文案
值友8592653091
校验提示文案
iMatterJ
校验提示文案
一片空白
校验提示文案
天冷人心暖
校验提示文案
值友1035399408
校验提示文案
值友1171521650
校验提示文案
一口一锅小布丁
校验提示文案
yinhao
校验提示文案
败了个败
校验提示文案
帅的_不明显
校验提示文案
蓝色泡泡龙
校验提示文案
leniou
校验提示文案
香稷馨香
校验提示文案