
在博客写作、技术文档管理或日常内容分享中,一个稳定可靠的个人图床系统能极大提升效率。EasyImg 正是一个基于现代前端框架 Nuxt4 构建的一站式个人图床解决方案,它提供了从图片上传管理到内容安全审查的完整功能集。
功能特性
🖼️ 图片管理
- 多种上传方式:支持点击、拖拽、粘贴上传,并可进行多图批量上传。
- URL 上传:支持通过图片URL直接下载并存入本地图库。
- 瀑布流展示:采用响应式瀑布流布局,完美适配不同屏幕尺寸。
- 图片预览:点击即可大图预览,并显示详细的图片信息。
- 批量操作:支持批量选择图片进行删除等管理操作。
- 回收站:采用软删除机制,误删后可恢复,也支持清空回收站以释放存储空间。
🔐 权限控制
- 公共/私有上传:支持访客匿名上传(公共)和用户登录后私有上传两种模式。
- API Key 管理:可创建多个API Key,方便与PicGo等第三方工具或脚本集成调用。
- IP 黑名单:支持手动添加或基于规则自动拉黑恶意IP地址。
🛡️ 内容安全
- NSFW 检测:集成多种鉴黄服务(nsfwdet.com、elysiatools.com),也支持接入自建的 nsfw_detector 服务。
- 自动处理:检测出的违规图片会被自动软删除,并可配置自动拉黑上传者IP。
- 违规管理:后台提供违规图片列表查看功能,支持手动复核并取消违规标记。
📊 数据统计
- 存储统计:实时展示当前活跃图片数量及存储空间占用情况。
- 分类统计:清晰区分公共上传与私有上传的图片数量。
- 内容安全统计:汇总展示总检测图片数、违规图片数及违规率。
🔔 通知推送
- 多种通知方式:支持 Webhook、Telegram、Email及Server酱等多种渠道。
- 事件通知:可订阅用户登录、图片上传、鉴黄检测结果等重要事件。
- 自定义模板:Webhook通知支持完全自定义请求体模板,适配各类接口。
⚙️ 系统设置
- 应用配置:自定义系统名称、Logo及全局背景图片。
- 公告系统:支持以弹窗或顶部横幅的形式发布和管理系统公告。
- 上传配置:灵活配置允许上传的图片格式、单文件大小限制,并可选开启WebP压缩以节省流量与存储。
- 频率限制:可配置同一IP地址的请求频率限制,防止滥用。
🎨 界面特性
- 深色模式:支持亮色/深色主题一键切换。
- 响应式设计:界面经过精心设计,在桌面端和移动端均有良好体验。
- 毛玻璃效果:可选择为背景图片启用毛玻璃模糊效果,提升视觉层次感。






快速开始
EasyImg 提供了多种部署方式,推荐使用 Docker 相关方案以获得最佳一致性体验。
1. Docker Compose 部署(推荐)
这是最简单快捷的部署方式,适合大多数场景。通过 Docker 容器化技术,可以轻松管理应用及其依赖。
# 1. 创建项目目录并进入
mkdir -p /root/easyimg && cd /root/easyimg
# 2. 下载 docker-compose.yml 配置文件
wget https://git.221022.xyz/https://raw.githubusercontent.com/chaos-zhu/easyimg/refs/heads/main/docker-compose.yml
# 3. 使用 docker compose 启动服务
docker compose up -d
2. Docker Run 部署
如果你偏好使用原生的 docker run 命令,可以通过以下指令快速启动:
docker run -d --name easyimg -p 3000:3000 -v ./db:/app/db -v ./uploads:/app/uploads ghcr.io/chaos-zhu/easyimg:latest
3. 手动部署
对于希望深度定制或了解其内部构成的开发者,可以选择手动部署。此方式需要预先安装 Node.js 环境。
# 安装项目依赖
pnpm install
# 启动开发服务器
pnpm dev
# 构建生产环境版本
pnpm build
# 运行生产服务
node .output/server/index.mjs
项目已在 GitHub 开源,你可以访问其仓库以获取最新代码、查阅详细文档或参与贡献。
开源项目地址:https://github.com/chaos-zhu/easyimg
|