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

53次阅读
没有评论

共计 3629 个字符,预计需要花费 10 分钟才能阅读完成。

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

  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 次后判定容器不健康
低成本自建图床!永久免费替代七牛云,支持水印 + 压缩 + 私有部署,完美搭配 PicGo!

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

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

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

低成本自建图床!永久免费替代七牛云,支持水印 + 压缩 + 私有部署,完美搭配 PicGo!
2、配置反向代理(如果没有域名,直接这一步即可,有域名则看 下面步骤 3)

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

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

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

选择 反向代理

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

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

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

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

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

低成本自建图床!永久免费替代七牛云,支持水印 + 压缩 + 私有部署,完美搭配 PicGo!
3、域名配置 + 反向代理 +https

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

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

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

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

然后 创建网站 – 反向代理

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

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

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

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

安装完成后即可进行登录

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

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

三、图床其他

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

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

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

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

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

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

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

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

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

四、配合 PicGo 自动上传图片

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

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

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

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

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

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

开启图床 API 上传

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

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

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

POST 参数名:image

JSON 路径:url

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

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

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

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

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

图传广场:

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

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

因为创建网站我们用了命名卷 存储数据,所有配置和图片都会保存在 easyimage_configeasyimage_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.gzeasyimage_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,数据会完全保留。

正文完
 0
zsrundev
版权声明:本站原创文章,由 zsrundev 于2025-08-28发表,共计3629字。
转载说明:转载请注明出处。
评论(没有评论)
验证码