CloudNest 是一个面向个人和小团队的自部署 Cloudinary 图床。它基于 Next.js App Router 构建,当前已经具备图片直传、链接复制、管理员后台、资源搜索、单删/批量删除和删除审计等核心能力,适合先快速上线一个可用的图床 MVP,再逐步收敛到更稳定的生产方案。
前台负责上传和拿链接,后台负责管理和删除,底层存储、CDN 和媒体管理直接复用 Cloudinary。
仓库简介可直接使用:
基于 Next.js 与 Cloudinary 的轻量图床,支持直传、管理员后台、批量删除与删除审计。
个人版一键部署只需要:
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAMENEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET
后台管理、signed upload 和审计持久化的进阶配置见 Cloudinary 配置指南 和 个人一键部署指南。
| 目标 | 文档 |
|---|---|
| 先了解项目是什么 | 项目总览 |
| 先准备 Cloudinary 配置 | Cloudinary 配置指南 |
| 尽快完成个人部署 | 个人一键部署指南 |
| 部署后日常使用和排错 | 使用与运维指南 |
| 查看接口与返回结构 | API 参考 |
| 接手继续开发 | 开发维护指南 |
| 查看协作约定 | CONTRIBUTING.md |
- Next.js 16
- React
- TypeScript
- Cloudinary Upload / Admin API
- Vercel Blob
- 复制环境变量模板:
cp .env.example .env.local- 最小可用配置至少需要:
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAMENEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET
这套配置会走 unsigned upload,最适合先把个人图床跑起来。
- 启动项目:
npm install
npm run dev默认开发地址:
http://localhost:3000
如果你要启用后台管理,还需要继续配置:
CLOUDINARY_API_KEYCLOUDINARY_API_SECRETAUTH_ALLOWED_EMAILSADMIN_LOGIN_PASSWORDADMIN_SESSION_SECRET
npm run dev
npm run lint
npm run typecheck
npm run test
npm run build
npm run verify
npm run start提交或部署前,至少执行:
npm run verify然后手动确认:
- 首页能正常上传图片
- 上传结果能复制 URL / Markdown / HTML
/admin能登录并读取资源- 单删、批量删除和审计读取都正常
- 当前管理员认证是密码 + 白名单邮箱 + cookie session,适合个人版或小规模使用
- 生产环境建议配置
BLOB_READ_WRITE_TOKEN,否则删除审计无法稳定持久化 - 如果要做公开服务,建议后续补充分布式限流、验证码、更正式的认证和登录失败告警