极简风格的无数据库图床CloudImgs

简介

什么是 CloudImgs ?

CloudImgs(云图) 是一个极简风格的无数据库图床项目。它非常适合在个人 NAS 上进行部署,提供了强大而灵活的 API 接口,并且可以作为流行的图床上传工具 PicGo 的插件来使用,极大地简化了图片上传和管理的流程。

主要特点

  • 强大的API支持:提供图片上传、随机图片、图片列表、图片删除、SVGPNG等多种 API
  • 便捷的上传体验:支持多图拖拽上传、图片编辑、压缩、以及通过 URL 参数实时处理图片。
  • PicGo插件集成:可作为 PicGo 插件直接安装使用,方便集成到现有工作流中。
  • 在线管理功能:提供瀑布流图片展示、批量选择和删除、相册分享等功能。
  • 高级功能:支持照片轨迹地图、集成 thumbhash 优化图片加载、设置密码保护图片安全、多级子目录管理等。
  • 移动端适配:界面友好,支持移动设备访问,便于用户随时随地管理图片。
  • 轻量化:无数据库设计,部署和迁移都非常简单,降低了管理复杂性和维护成本。

应用场景

  • 个人博客或网站图床:为你的网站提供一个稳定、私有的图片存储解决方案。
  • NAS 用户:针对使用 NAS (网络附加存储) 的用户,方便在家里管理和访问图片。
  • 笔记应用伴侣:搭配 PicGo 等工具,无缝地在 Markdown 笔记中插入图片。
  • 开发者和技术用户:开发者可以利用其开放的 API 接口来集成和扩展功能,适合自定义图片处理流程。

Cloudimgs 是一个灵活、高效的图床解决方案,适合各种用户的不同需求。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 cloudimgs ,选择第一个 qazzxxx/cloudimgs,版本选择 latest

本文写作时, latest 版本对应为 1.7.1

docker 文件夹中,创建一个新文件夹 cloudimgs,并在其中建一个子文件夹 uploads

文件夹 装载路径 说明
docker/cloudimgs/uploads /app/uploads 存放上传文件、设置等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
3288 3000

环境

可变 说明
PUID 1000 当前 NAS 用户的用户 ID,用于设定文件权限。
PGID 1000 当前 NAS 用户组的组 ID,用于设定文件权限。
UMASK 002 文件权限掩码,控制新创建文件的默认权限。
NODE_ENV production 应用运行的环境设置(如开发、生产等)。
PORT 3001 应用服务监听的端口,容器内部使用的端口。
STORAGE_PATH /app/uploads 文件上传目录,在容器内的路径。
PASSWORD your_secure_password_here (可选) 可选的访问密码,用于保护应用的安全性。

除了 PASSWORD 外,其他都提供了默认值

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 新建文件夹 cloudimgs 和 子目录
mkdir -p /volume1/docker/cloudimgs/uploads

# 进入 cloudimgs 目录
cd /volume1/docker/cloudimgs

# 运行容器
docker run -d \
--restart unless-stopped \
--name cloudimgs-app \
-p 3288:3001 \
-v $(pwd)/uploads:/app/uploads \
-e PUID=1000 \
-e PGID=1000 \
-e UMASK=002 \
-e NODE_ENV=production \
-e PORT=3001 \
-e STORAGE_PATH=/app/uploads \
qazzxxx/cloudimgs:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
services:
cloudimgs:
image: qazzxxx/cloudimgs:latest
container_name: cloudimgs-app
restart: unless-stopped
ports:
- "3288:3001"
volumes:
- ./uploads:/app/uploads:rw # 上传目录配置,明确读写权限
environment:
- PUID=1000 # 替换为您 NAS 用户的实际 ID (id -u)
- PGID=1000 # 替换为您 NAS 用户组的实际 ID (id -g)
- UMASK=002
- NODE_ENV=production
- PORT=3001
- STORAGE_PATH=/app/uploads
# 密码保护配置(可选)
# - PASSWORD=your_secure_password_here

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 cloudimgs 和 子目录
mkdir -p /volume1/docker/cloudimgs/uploads

# 进入 cloudimgs 目录
cd /volume1/docker/cloudimgs

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

部署成功后,在浏览器中输入 http://你的设备IP:8099 即可访问 CloudImgs的主界面

如果设置了密码,需要先进行验证才能上传和管理图片

1
2
environment:
- PASSWORD=your_secure_password_here

注意事项:

  • 设置 PASSWORD 环境变量后,系统将自动启用密码保护
  • 未设置 PASSWORD 时,系统无需密码即可访问
  • 密码验证成功后,登录状态会保存在浏览器本地存储中

进入 相册管理

创建相册

更快捷的是在工具条上直接创建

将图片拖拽到页面即可上传

上传完成后

直接点击图片可以查看详细信息

picgo 插件

官方提供了 picgo 插件,项目地址在:https://github.com/qazzxxx/picgo-plugin-cloudimgs-uploader

有这方面需要的,可以去试试

参考文档

qazzxxx/cloudimgs: 云图 - 极简风格的云图库,无数据库图床项目,支持NAS部署,支持设置密钥,支持各种灵活的API开放接口,NAS图床,PicGo插件直接安装使用
地址:https://github.com/qazzxxx/cloudimgs

云图 - 云端一隅,拾光深藏
地址:https://yt.qazz.site/

qazzxxx/picgo-plugin-cloudimgs-uploader: picgo插件,用于云图-cloudimgs图床上传
地址:https://github.com/qazzxxx/picgo-plugin-cloudimgs-uploader