【OEC Turbo榨干计划】让 Immich “跑” 起来!NPU这波血赚
在小黄鱼捡漏了 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 占用很低。
任务
npu
htop最后再试一下以文搜图,可以正常搜索照片了,谁又能拒绝 “二月的台北” 这种带点回忆杀的关键词,去过的城市、见过的人、一起浪过的朋友。这里会搜索到很多图片,是因为机器学习是按照照智能搜索的符合度往下排的。第一次搜索的时候可能时间会稍微长一些,是因为需要加载模型,后面就会快了。
搜图
搜图
搜图
搜图总结
OEC Turbo 虽然小黄鱼卖90-100,RK3566 芯片 + 2.5 寸 SATA 位直接香爆了!之前看有值友说这设备鸡肋,其实只要想清楚需求 —— 像我这种只图看电影、存相册、搭共享盘的 “轻度玩家”,它简直是刚需神器!尤其是 Docker 加持下,部署 Immich、Alist 这些服务跟搭积木似的,点点鼠标就能跑起来,完全不用折腾底层。谁再说百元设备玩不转?
作为开发者,始终对开源生态心怀敬畏 —— 就像 Immich,尽管它的授权标识只是一个简单的图标,却承载着无数开发者共享共建的心血。如果大家在使用过程中觉得顺手,真心希望有能力的朋友能通过官方渠道支持这些开源项目,无论是 star、捐赠代码,还是小额赞助,都是为开源世界添砖加瓦。只有让更多优质开源软件 “活下去”,我们才能一直享受免费且强大的软件!!!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

秋水红林
这四个设备,只有/dev/dri有,其它的都没有
- /dev/rga:/dev/rga
- /dev/dri:/dev/dri
- /dev/dma_heap:/dev/dma_heap
- /dev/mpp_service:/dev/mpp_service
校验提示文案
白云过溪
1.我刷的包是【线刷有VGPU】,跟25.05.0的包有啥区别,哪个好
2.我这个包的npu驱动是v0.9.7,immich文档要求RKNPU driver V0.9.8 or later,请问你的驱动版本是多少?
校验提示文案
zhonghuaren
log 文件中有这些报错,感觉和网络有关,但也不是很确定,也不知道怎么处理。。。
Api:Error: Failed to fetch GitHub release: TypeError: fetch failed
Microservices:Error: Failed to fetch GitHub release: TypeError: fetch
校验提示文案
zzyi4u
校验提示文案
Jack1001
校验提示文案
追灬雪
校验提示文案
值友4758634820
校验提示文案
白云过溪
校验提示文案
埖幵芣贁
校验提示文案
埖幵芣贁
校验提示文案
zhonghuaren
log 文件中有这些报错,感觉和网络有关,但也不是很确定,也不知道怎么处理。。。
Api:Error: Failed to fetch GitHub release: TypeError: fetch failed
Microservices:Error: Failed to fetch GitHub release: TypeError: fetch
校验提示文案
白云过溪
校验提示文案
白云过溪
1.我刷的包是【线刷有VGPU】,跟25.05.0的包有啥区别,哪个好
2.我这个包的npu驱动是v0.9.7,immich文档要求RKNPU driver V0.9.8 or later,请问你的驱动版本是多少?
校验提示文案
值友4758634820
校验提示文案
追灬雪
校验提示文案
Jack1001
校验提示文案
zzyi4u
校验提示文案
秋水红林
这四个设备,只有/dev/dri有,其它的都没有
- /dev/rga:/dev/rga
- /dev/dri:/dev/dri
- /dev/dma_heap:/dev/dma_heap
- /dev/mpp_service:/dev/mpp_service
校验提示文案