低成本自建图床!永久免费替代七牛云,支持水印+压缩+私有部署,完美搭配PicGo!

上期介绍了七牛云免费图床的搭建方法及教程,但是七牛云随着你数据量的加大,仍旧可能会有一丢丢的流量费用,所以今天 再给大家带来一款可以在自己服务器上搭建的开源图床。该图床可以:

  1. 1. 可以自定义压缩图片
  2. 2. 可以自定义添加水印
  3. 3. 可以设置私有
  4. 4. 可以配置PigGo使用

一、项目介绍

GitHub原项目地址:https://github.com/icret/EasyImages2.0

Docker镜像地址:https://hub.docker.com/r/ddsderek/easyimage

搭建环境:

服务器:轻量服务器即可

域名:自备

其他环境:安装1panel 面板,安装docker compose环境

二、搭建教程

1、基础搭建

登录自己服务器搭建好的1panel面板,找到系统-文件 然后在上方选择自己想要存放项目的位置,创建或者导入docker-compose.ymal , 这是docker compose 的配置文件:

version: '3.8'  # 兼容主流 Docker 版本,支持命名卷特性

# 定义命名卷(所有数据存储在这里,Docker 统一管理,安全且易迁移)
volumes:
  easyimage_config:  # 存储 EasyImage 配置文件(含系统设置、水印/压缩规则等)
  easyimage_uploads: # 存储上传的图片文件(原始图、压缩后图)

services:
  easyimage:
    image: ddsderek/easyimage:latest  # 官方指定镜像(最新稳定版)
    container_name: easyimage  # 容器名称,便于管理
    restart: unless-stopped  # 容器异常退出时自动重启
    ports:
      - "8087:80"# 端口映射:主机 8087 端口 → 容器 80 端口(可修改主机端口,如 8090:80)
    environment:
      - TZ=Asia/Shanghai  # 时区配置(避免日志时间错乱,必填)
      - PUID=1000# 运行容器的用户 ID(默认 1000,对应主机普通用户,避免权限问题)
      - PGID=1000# 运行容器的用户组 ID(与 PUID 保持一致)
      - DEBUG=false  # 关闭调试模式(生产环境建议 false,排查问题时可设为 true)
    volumes:
      # 挂载命名卷到容器内对应目录
      - easyimage_config:/app/web/config  # 配置文件目录 → 命名卷
      - easyimage_uploads:/app/web/i      # 图片存储目录 → 命名卷
    # 可选:添加健康检查(确保容器正常运行)
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:80"]  # 检测容器内 80 端口是否可用
      interval: 30s  # 每 30 秒检查一次
      timeout: 10s   # 超时时间 10 秒
      retries: 3     # 失败 3 次后判定容器不健康
image-20250828091555372
image-20250828091555372

点击终端,运行下方命令 即可拉取镜像(注意终端位置需要和docker-compose.ymal路径一致):

docker-compose up -d 
image-20250828091843784
image-20250828091843784

安装完成后即可在容器中看到已经运行起来的easyimage项目,如果是在本地环境安装的,现在就可以直接用IP:自定设定的端口进行访问项目了,例如:127.0.0.1:8087 如果是在服务器中,则需要配置域名、反向代理等操作。

image-20250828092032341
image-20250828092032341
2、配置反向代理(如果没有域名,直接这一步即可,有域名则看 下面步骤3)

首先,在容器面板中我们可以看到刚才搭建的项目地址和端口是:0.0.0.0:8087

然后在1panel 面板中找到网站 – 创建网站 ,注意这里前提是安装OpenResty,一般进入这个页面没安装就会有提示。

image-20250828092357901
image-20250828092357901

选择 反向代理

在批量添加域名这里添加自己的服务器IP ,然后点击生成,下方内容会自动填充

代理地址 填入前面保存的地址和端口:0.0.0.0:8087

填写完成后点击确认 即可在网站列表中找到创建的网站

image-20250828092948328
image-20250828092948328

浏览器输入自己服务器IP,即可访问创建的网站,首此打开网站会有环境检测,根据提示操作即可

image-20250828093512777
image-20250828093512777
3、域名配置+反向代理+https

首先申请证书,在1panel面板中找到 网站-证书申请SSL证书

输入自己要申请证书的域名,选择验证方式为 HTTP (支持自动续签免费证书)

image-20250828094231151
image-20250828094231151

如果域名解析没啥问题,那么证书就会申请成功,如果这里证书申请不成功,建议到域名服务商那边检查自己的域名解析

然后创建网站 – 反向代理

添加域名,点击生成,填写代理地址 ,选择自己申请的证书 ,点击确认,网站创建成功。

image-20250828094641099
image-20250828094641099

这里第一次打开网站 配置时,记得修改 网站域名的 https 、管理员的密码

image-20250828094937389
image-20250828094937389

安装完成后即可进行登录

image-20250828095054638
image-20250828095054638

至此,简单图床搭建完成。

三、图床其他

1、设置图床仅自己可以上传、预览

项目本身是个开源站,所以搭建完成后所有人都可以进行图片上传和预览,不满足我们的需求,因此需要关闭部分设置,使网站仅自己可用,别人无法登录和图片上传预览

image-20250828095541713
image-20250828095541713

关闭页面预览功能,避免别人打开网站看到你上传的图片

image-20250828095823702
image-20250828095823702
2、添加水印

可以给图片添加文字、图片水印

image-20250828100109944
image-20250828100109944
3、图片压缩

图片压缩,减轻服务器负担

image-20250828100209524
image-20250828100209524

四、配合PicGo 自动上传图片

如何下载安装配合PicGo 和 Typora 在编辑markdown时自动上传文件,请移步 这篇文章,或在本站自定搜索,这里只讲PicGo自定义图床

打开PicGo – 插件设置 在插件这里搜索并安装 web-uploader 1.1.0 安装插件

或者在github官方插件页面 https://github.com/PicGo/Awesome-PicGo 搜索 picgo-plugin-web-uploader 下载本地安装包在右侧箭头处导入本地安装包

image-20250828100533189
image-20250828100533189

打开图床网站 – 设置 找到 API调用地址 和 Token

image-20250828101015053
image-20250828101015053

开启图床API上传

image-20250828101928995
image-20250828101928995

在PicGo 自定义Web图床 中配置:

API地址: 输入自己的API调用地址

POST参数名:image

JSON路径:url

自定义Body: {“token”:”自己的token”}

点击保存后要设定为默认图床

image-20250828101218502
image-20250828101218502

之后上传图片即可将图片上传到自己搭建的图传地址,水印、压缩都有,而且只有自己管理员登录才可进行上传、预览,测试一下:

1Z92G64Z92917-0-lp
1Z92G64Z92917-0-lp

图传广场:

image-20250828102627997
image-20250828102627997

五、网站迁移、图片数据迁移

因为创建网站我们用了命名卷 存储数据 ,所有配置和图片都会保存在 easyimage_config 和 easyimage_uploads 卷中,迁移服务器时只需备份这两个卷即可。

备份命名卷(迁移前操作)
# 备份 easyimage_config 卷(配置文件)
docker run --rm -v easyimage_config:/source -v $(pwd):/backup alpine tar -czvf /backup/easyimage_config.tar.gz -C /source .

# 备份 easyimage_uploads 卷(图片文件)
docker run --rm -v easyimage_uploads:/source -v $(pwd):/backup alpine tar -czvf /backup/easyimage_uploads.tar.gz -C /source .

备份文件会生成在当前目录(easyimage_config.tar.gz 和 easyimage_uploads.tar.gz),将这两个文件复制到新服务器。

恢复命名卷(新服务器操作)
  1. 1. 在新服务器上创建相同的 docker-compose.yml 文件(不要运行);
  2. 2. 先创建空卷:docker volume create easyimage_config
    docker volume create easyimage_uploads
  3. 3. 恢复备份数据:# 恢复配置卷
    docker run --rm -v easyimage_config:/target -v $(pwd):/backup alpine sh -c "tar -xzvf /backup/easyimage_config.tar.gz -C /target"

    # 恢复图片卷
    docker run --rm -v easyimage_uploads:/target -v $(pwd):/backup alpine sh -c "tar -xzvf /backup/easyimage_uploads.tar.gz -C /target"
  4. 4. 启动容器:docker compose up -d,数据会完全保留。

暂无介绍....

延伸阅读:

低成本自建图床!永久免费替代七牛云,支持水印+压缩+私有部署,完美搭配PicGo!

上期介绍了七牛云免费图床的搭建方法及教程,但是七牛云随着你数据量的加大,仍旧可能会有一丢丢的流量费用,所以今天 再给大家...

guozhiman
2025年9月20日
在Linux环境中制作Windows启动盘

目前在市面上存在很多U盘启动制作工具。如老牌工具大白菜等、但是这些工具或多或少都带一点私活。我们又该如何制作纯U盘启动工...

guozhiman
2025年9月19日
前端必看:比 js 快几十倍的前端语言来了

当我们聊前端,第一反应肯定是 JavaScript。无论是操作 DOM、调用 API,还是开发复杂的应用,JS 一直是前...

guozhiman
2025年9月9日
一键自动化重装操作系统(Linux / Windows)

官方文档:https://netboot.xyz/docs亮点一键安装 Linux,支持 19 种常见发行版一键安装 W...

guozhiman
2025年9月3日
VMware ESXi 7.0和vCenter Server 7.0安装部署

组件介绍:1、VMware ESXi 7.0VMware ESXi 是 VMware 推出的一种裸金属虚拟化管理程序,可...

guozhiman
2025年7月21日