项目介绍

  1. 支持多文件上传,简单无数据库,返回图片 url,markdown,bbscode,html 的一款图床程序。且支持 PicGo 部署。
  2. 官方 GitHub 仓库: https://github.com/icret/EasyImages2.0
  3. DockerHub 仓库: https://hub.docker.com/r/ddsderek/easyimage
  4. 官方演示 Demo 地址: https://png.cm
  5. 官方文档: https://icret.gitee.io/easyimages2.0/#/

特点:

  • 支持 API
  • 支持仅登录后上传
  • 支持设置图片质量
  • 支持压缩图片大小
  • 支持文字 / 图片水印
  • 支持设置图片指定宽 / 高
  • 支持上传图片转换为指定格式
  • 支持限制最低宽度 / 高度上传
  • 支持上传其他文件格式
  • 在线管理图片
  • 支持网站统计
  • 支持设置广告
  • 支持图片鉴黄
  • 支持自定义代码
  • 支持上传 IP 黑白名单
  • 支持上传日志 IP 定位
  • 支持限制日上传次数
  • 支持创建仅上传用户
  • 对于安装环境要求极低
  • 对于服务器性能要求极低
  • 理论上支持所有常见格式
  • 更多功能支持请安装尝试

搭建环境

  • 服务器:甲骨文免费申请的VPS [CPU2 内存12G 硬盘100G ARM64架构]
  • 系统:Ubuntu 12.04 ARM64
  • 域名一枚,并做好解析到服务器上
  • 安装好Docker、Docker-compose
  • 【非必需本教程采用】安装好Nginx Proxy Manager

项目搭建

  1. 创建安装目录
1
mkdir root/docker_data/easyimages
  1. 进入安装目录创建 docker-compose.yml 文件
1
2
cd /root/data/docker_data/easyimage
vim docker-compose.yml
  1. docker-compose.yml` 文件中写入以下信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '3.3'
services:
easyimage:
image: ddsderek/easyimage:latest
container_name: easyimage
ports:
- '8080:80'
environment:
- TZ=Asia/Shanghai
- PUID=1000
- PGID=1000
- DEBUG=false
volumes:
- './config:/app/web/config'
- './i:/app/web/i'
restart: unless-stopped
  1. 运行 docker 镜像
1
docker-compose up -d

容器运行后使用 ip:8080 即可访问简单图床。如果不能访问,请查看防火墙是否放行该端口 (腾讯云,阿里云,华为云,甲骨文等服务器提供商需在控制台面板手动关闭防火墙并放行端口)。如果配置了反代,则通过域名就可以访问。

  1. 容器更新
1
2
3
4
5
6
7
cd /root/data/docker_data/easyimage  # 进入docker-compose所在的文件夹

docker-compose pull # 拉取最新的镜像

docker-compose up -d # 重新更新当前镜像

docker exec -it easyimage rm -rf /app/web/install #因为更新后镜像自带install目录,所以要删除

利用Docker-compose搭建的应用,更新非常容易~

  1. 容器卸载
1
2
3
4
5
sudo -i  # 切换到root
cd /root/data/docker_data/easyimage # 进入docker-compose所在的文件夹
docker-compose down # 停止容器,此时不会删除映射到本地的数据
cd ~
rm -rf /root/data/docker_data/easyimage # 完全删除映射到本地的数据

利用Docker-compose搭建的应用,删除也非常容易~

反向代理

  1. 域名解析到 npm 所在的服务器
  2. npm 和简单图床若不在同一个服务器,则填入简单图床所在服务器的 ip。若在同一个服务器,可以填服务器 ip 也可以填 docker 的内网 ip。

Nginx Proxy Manager(以下简称NPM)会用到80443端口,所以本机不能占用(比如原来就有Nginx)

注意:不要开启 Block Common Exploits,否则会导致部分图片无法显示。

之后修改/root/data/docker_data/easyimage/config/config.php里的内容,把domainimgurl分别改成自己的域名。(如果你用Nginx或者宝塔做反向代理,也记得在这边修改,否则会出现奇怪的错误 = =)

使用教程

自己研究,看文档

参考资料

感谢

感谢@Derek 制作了Docker镜像,并一起调试了反向代理的错误

感谢@大官人制作了Easyimage,让我可以方便使用WebP