图床不想用付费的,我自己在 NAS 上搭了一个

写博客这几年,图片 storage 一直是个烦心事。

早年用某免费图床,突然某天图片全部 403,几百张配图一夜报废。后来换到另一家,没多久开始限速,外链打开慢得像拨号上网。付费图床也不是没考虑过,但一年几百块,就为了存点截图和文章配图,心里总觉得不值。我在飞牛 NAS 上本来就挂着好几块硬盘,干嘛不自己跑一个?

cloudimgs 主界面瀑布流

cloudimgs 魔法搜索界面

cloudimgs 整页上传界面

cloudimgs 照片轨迹地图

于是这两天试了试 cloudimgs,一个国人开的开源图床项目。名字取得挺直接,就叫”云图”。

它吸引我的点不是功能多花哨,而是几条特别对 NAS 党胃口:

  • Docker 一键跑,compose 文件几行就搞定
  • 支持 PUID/PGID,权限能跟 NAS 现有用户对齐
  • 自带 PicGo 插件,写 Markdown 时截图直接上传
  • 可选 CLIP 本地语义搜索,搜”蓝天白云”能找出对应照片

部署过程没太折腾。我飞牛 NAS 上建了个目录,把官方 docker-compose.yml 丢进去,改了几下环境变量:

services:
  cloudimgs:
    image: qazzxxx/cloudimgs:latest
    container_name: cloudimgs-app
    restart: unless-stopped
    ports:
      - "3001:3001"
    volumes:
      - ./uploads:/app/uploads:rw
    environment:
      - PUID=1000
      - PGID=1000
      - UMASK=002
      - NODE_ENV=production
      - PORT=3001
      - STORAGE_PATH=/app/uploads
      - PASSWORD=your_secure_password

PUID/PGID 我填的是 NAS 上实际用户的 id,这样容器里生成的文件在宿主机上也能正常读写。没设这个之前我见过太多 Docker 项目权限一团糟,最后 uploads 目录 644 还是 755 都搞不清楚,烦得很。

真正踩坑的是魔法搜索。README 里写”开启 ENABLE_MAGIC_SEARCH=true 后占用内存较高”,我没当回事,直接在 32G 内存的飞牛 NAS 上开了。结果容器启动后第一次加载 CLIP 模型,NAS 风扇狂转,Web 界面卡了快一分钟。理论上 Mac mini M4 16G 开这个功能会更有压力,所以我后来把它关了,普通图库模式够我用了。

图片上传后,Web 界面是瀑布流,跟相册差不多。批量圈选删除、按目录归类、SVG 转 PNG 这些都有。我最喜欢的是 URL 参数处理,比如 image.jpg?w=800&fmt=webp,直接拿到压缩后的 WebP 版本,博客配图加载快不少。

PicGo 插件我装上了。Mac mini 上截图后按快捷键,图片直接传到 NAS 的图床,返回 Markdown 链接,省得我手动打开 Web 界面上传。这一步配置也简单,插件里填 NAS 地址、端口、密码就行。

目前跑了两天,上传了几十张截图。访问速度跟内网带宽有关,我在千兆内网下打开图片基本无感。公网访问的话我走了旁路由上的代理隧道,没有直接开端口,安全第一。

要说缺点,也有。cloudimgs 的相册分享功能我试了下,生成链接没问题,但分享页在移动端排版偶尔错位。另外 CLIP 搜索对中文语义的支持还有提升空间,搜”人物”能找到一些,但”夕阳下的建筑”这种复杂描述会漏掉不少。

不过作为私有图床,它已经满足我 90% 的需求了:图存在自己硬盘、不用看第三方脸色、写博客时配图能一键插入。剩下的边角问题,作者还在持续更新,6 月底还在修分页路径的 bug,我觉得可以长期用。

如果你也有 NAS,与其每年给图床续费,不如拿半天时间搭一个。省钱是一方面,更重要的是,数据终于回到自己手里。

发表评论