【OEC Turbo榨干计划】让 Immich “跑” 起来!NPU这波血赚

2025-05-14 12:44:47 11点赞 60收藏 31评论

在小黄鱼捡漏了 OEC Turbo 后,可没少折腾 —— 从实现电影自由到搞定数据备份,从挂载 Alist 网盘到替换掉 CasaOS。之前刷 Armbian 系统时,看到大佬提到 NPU 驱动已经正常适配,这可勾起了我的折腾欲!正好 Immich (https://immich.app/)相册支持 NPU 加速机器学习功能,必须趁热打铁,给这设备压榨到极致!

说干就干

部署过程相当丝滑,和之前一样用 Docker Compose 搞定,CasaOS 的兄弟直接在应用市场选「导入」,把 docker-compose.yml 一股脑粘进去,记得把 .env 里的参数换成自己的配置(比如存储路径、端口这些)。

要是和我一样喜欢命令行直给的,直接把这俩文件保存到设备里,SSH 连上去敲一行 docker compose up -d,剩下的交给时间,喝杯茶回来服务就跑起来了~

这个 docker-compose.yml 是基于官方提供的修改了一下,可以在 OEC Turbo 上直接起启用 NPU ,并且设置了 Hugging Face 加速。

name: immich

services:

immich-server:

container_name: immich_server

image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}

security_opt:

- systempaths=unconfined

- apparmor=unconfined

group_add:

- video

devices:

- /dev/rga:/dev/rga

- /dev/dri:/dev/dri

- /dev/dma_heap:/dev/dma_heap

- /dev/mpp_service:/dev/mpp_service

volumes:

- ${UPLOAD_LOCATION}:/usr/src/app/upload

- /etc/localtime:/etc/localtime:ro

env_file:

- .env

ports:

- ${PORT}:2283

depends_on:

- redis

- database

restart: always

healthcheck:

disable: false

immich-machine-learning:

container_name: immich_machine_learning

security_opt:

- systempaths=unconfined

- apparmor=unconfined

devices:

- /dev/dri:/dev/dri

volumes:

- ${MODELS_LOCATION}:/cache

env_file:

- .env

restart: always

healthcheck:

disable: false

environment:

- HF_ENDPOINT=https://hf-mirror.com

redis:

container_name: immich_redis

image: docker.io/redis:6.2-alpine@sha256:148bb5411c184abd288d9aaed139c98123eeb8824c5d3fce03cf721db58066d8

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:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52

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="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" ||

exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}"

--username="$${POSTGRES_USER}" --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

compose.yaml

PORT=替换成要映射的端口

UPLOAD_LOCATION=替换成照片保存目录

DB_DATA_LOCATION=替换成数据库保存目录

MODELS_LOCATION=替换成模型保存目录

IMMICH_VERSION=release

DB_PASSWORD=postgres

DB_USERNAME=postgres

DB_DATABASE_NAME=immich

.env

时间一到启动成功,接着使用配置的端口来访问。然后一步一步按照自己喜好配置 Immich ,因为 Immich 已经非常成熟了,基本就是一顿下一步就行。

入门入门创建用户创建用户登录登录欢迎欢迎主题主题隐私隐私

这里是选择照片在服务器中储存的文件夹的路径,我比较喜欢按年和月分文件夹,这个就按照个人喜好来选择了。

储存储存

接着需要配置机器学习的模型,先点右上角的头像,然后点系统管理。

设置设置

进入设置里的机器学习选项,找到智能搜索配置,这里的 CLIP 模型选择默认的小模型搜索效果有点拉胯。我把 Immich 官方发布的几个 CLIP 模型都测了个遍,最后发现 ViT-B-16-SigLIP2__webli 最合适虽说不是多语言版本,但实测中文一样可以搜图,其他模型要么体积太大直接撑爆内存,要么效果稀碎根本没法用。当然也可以自己去 https://hf-mirror.com/immich-app 选自己喜欢的模型。这里修改过后如果发现没有使用新模型的话需要重新启动下 docker。

另外,我在 Docker Compose 里已经配置了 Hugging Face 加速,但如果觉得模型下载还是慢或者报错,可以直接用 git lfs 把模型仓库克隆到之前设定的目录就行!Armbian 自带 git 命令,但是没有 git lfs ,需要单独安装,之后去找自己喜欢模型就行。

设置设置

因为我使用的这个 Armbian 包虽然可以使用 vgpu ,但是少了 mali0 节点,导致视频转码没法调用显卡硬件加速。不过家用带宽够,1080P 原片直传播放也不卡,索性直接在 Immich 里把转码功能关掉!

设置设置

修改完记得保存,保存按钮在下面记得点!!!

随便上传几张图片,看到后台任务已经开始人脸识别和智能搜索处理了。NPU 也开始使用了,使用 htop 查看 cpu 占用很低。

任务任务npunpuhtophtop

最后再试一下以文搜图,可以正常搜索照片了,谁又能拒绝 “二月的台北” 这种带点回忆杀的关键词,去过的城市、见过的人、一起浪过的朋友。这里会搜索到很多图片,是因为机器学习是按照照智能搜索的符合度往下排的。第一次搜索的时候可能时间会稍微长一些,是因为需要加载模型,后面就会快了。

搜图搜图搜图搜图搜图搜图搜图搜图

总结

OEC Turbo 虽然小黄鱼卖90-100,RK3566 芯片 + 2.5 寸 SATA 位直接香爆了!之前看有值友说这设备鸡肋,其实只要想清楚需求 —— 像我这种只图看电影、存相册、搭共享盘的 “轻度玩家”,它简直是刚需神器!尤其是 Docker 加持下,部署 Immich、Alist 这些服务跟搭积木似的,点点鼠标就能跑起来,完全不用折腾底层。谁再说百元设备玩不转?

作为开发者,始终对开源生态心怀敬畏 —— 就像 Immich,尽管它的授权标识只是一个简单的图标,却承载着无数开发者共享共建的心血。如果大家在使用过程中觉得顺手,真心希望有能力的朋友能通过官方渠道支持这些开源项目,无论是 star、捐赠代码,还是小额赞助,都是为开源世界添砖加瓦。只有让更多优质开源软件 “活下去”,我们才能一直享受免费且强大的软件!!!

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
31评论

  • 精彩
  • 最新
  • 提示没有/dev/rga 该怎么办呢? 这是个什么设备?
    这四个设备,只有/dev/dri有,其它的都没有
    - /dev/rga:/dev/rga
    - /dev/dri:/dev/dri
    - /dev/dma_heap:/dev/dma_heap
    - /dev/mpp_service:/dev/mpp_service

    校验提示文案

    提交
    可能是你刷机的包,里面没有驱动的原因

    校验提示文案

    提交
    我的也是

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 大佬,
    1.我刷的包是【线刷有VGPU】,跟25.05.0的包有啥区别,哪个好
    2.我这个包的npu驱动是v0.9.7,immich文档要求RKNPU driver V0.9.8 or later,请问你的驱动版本是多少?

    校验提示文案

    提交
    之前看了,回家给忘了 [皱眉] ,具体包都有啥区别我也不太懂,我用的这个版本是0.98版本
    root@armbian:~# dmesg | grep rknpu
    [ 5.558851] RKNPU fde40000.npu: RKNPU: rknpu iommu is enabled, using iommu mode
    [ 5.558927] RKNPU fde40000.npu: Looking up rknpu-supply from device tree
    [ 5.559796] [drm] Initialized rknpu 0.9.8 20240828 for fde40000.npu on minor 0
    [ 5.560351] RKNPU fde40000.npu: Looking up rknpu-supply from device tree
    [ 5.560482] RKNPU fde40000.npu: Looking up rknpu-supply from device tree
    [ 5.560502] debugfs: Directory 'fde40000.npu-rknpu' with parent 'vdd_fixed' already present!

    校验提示文案

    提交
    嗯,刷了h大的包更新了npu,现在又有个问题,怎么配置https啊,用http远程感觉不安全,家里有公网和域名

    校验提示文案

    提交
    还有9条回复
    收起所有回复
  • truenas上通过docker compose安装immich无法启动是什么原因啊?
    log 文件中有这些报错,感觉和网络有关,但也不是很确定,也不知道怎么处理。。。
    Api:Error: Failed to fetch GitHub release: TypeError: fetch failed
    Microservices:Error: Failed to fetch GitHub release: TypeError: fetch

    校验提示文案

    提交
  • 尝试中,但是发现 immich-machine-learning 这一节中,缺少image,还请 作者 补充下

    校验提示文案

    提交
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-rknn,本来官方给的里面有很多注释,我删除的时候可能删多了。

    校验提示文案

    提交
    去看看
    试试第一个

    校验提示文案

    提交
    收起所有回复
  • 请问大佬,黑裙docker下安装immich能调动NPU吧?

    校验提示文案

    提交
    刚刚看文档确认了下,目前支持rknn这个npu,其他的都是gpu,目前各家软件对npu支持都不算太好,估计还要几年才行

    校验提示文案

    提交
    哥,你最后装上了吗?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 貌似不支持挂载网盘里面存的照片,只能是现存照片

    校验提示文案

    提交
  • 麻烦问下刷的哪个包?

    校验提示文案

    提交
  • 大佬看到回我评论啊

    校验提示文案

    提交
  • 为什么拉取完后 点端口进不去 是什么原因

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
60
扫一下,分享更方便,购买更轻松