【本地图床搭建】宝塔+Docker+MinIO+PicGo+cpolar:打造本地化“黑科技”图床方案

发布于:2025-04-15 ⋅ 阅读:(39) ⋅ 点赞:(0)

写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除!



前言

在博客创作过程中,图片管理是不可或缺的重要环节。对于众多依赖 WordPress 搭建博客网站的用户而言,每次上传媒体文件都需要在后台手动操作,流程繁琐且效率低下。而选择公开图床虽能暂时解决存储问题,但数据安全与稳定性始终是悬而未决的隐患——一旦图床服务商关闭或数据丢失,辛苦积累的视觉素材可能瞬间化为乌有。

为破解这一困境,本地化图床方案应运而生。通过服务器环境中的宝塔面板,可快速部署 Docker 容器化服务,实现存储与应用的物理隔离。在此基础上,采用 MinIO 构建高性能、S3 协议兼容的对象存储系统,既能满足海量图片的分布式存储需求,又可通过标准化接口与第三方工具无缝对接。同时,借助 PicGo 实现便捷的客户端上传功能,并配合 cpolar 内网穿透技术,将本地服务映射为公网可访问的静态资源地址以实现图片资产的自主掌控与高效管理。

东荷新绿的博客网站 - 【本地图床搭建】宝塔+Docker+MinIO+PicGo+cpolar:打造本地化“黑科技”图床方案

访问密码:dhxl
若无法访问,就是笔记本关机了
若图片无法显示,就是图床失效了


宝塔安装Docker

  • 在宝塔面板进行Docker安装
    image-20250413115158697

注意:虚拟机的宝塔面板的无法实现外网访问。

  • 授权特定IP也不行。

    image-20250413143630639

  • phpmyadmin 启动异常也不影响

    image-20250413143931251

  • 建议修改虚拟机的网络模式为桥接模式:NAT模式只能本机访问,桥接可局域网访问,相对方便点。

    image-20250413144352453


MinIO 安装与设置

  • 搜索MinIO插件
    image-20250413115437135

  • 记住账号密码
    image-20250413115916074

  • 查看日志
    image-20250413120059670

  • 登录MinIO:127.0.0.1:19001

image-20250413120329300

  • 创建桶
    image-20250413120410174
    image-20250413120624917

image-20250413120650983

  • 设置桶权限
    image-20250413121141625

image-20250413121408741

  • 测试上传
    image-20250413121800704

  • 创建访问密钥:后续PicGo会用到。

image-20250413122257595


cploar内网穿透

cploar官网:https://www.cpolar.com/,当然你需要一个注册一个号。

  • 登陆后如下图,linux不推荐这样安装,浏览器可能无法访问cpolar web UI管理界面

image-20250413134717233

上述操作,配置文件在/home/用户名/.cpolar/cpolar.yml,无法配置系统服务,即cpolar http 80会报错找不到cpolar,进而向系统添加、启动、查看cpolar服务:sudo systemctl enable cpolarsudo systemctl start cpolarsudo systemctl status cpolar都会提示没有该服务。

笔者也尝试过创建cpolar.service、将cpolar可执行文件移动到/usr/lccal/bin等,甚至添加环境变量,编辑./bash_bashrc等等,网上找了一堆解决办法都不行,甚至一度怀疑是不是虚拟机的问题。

最后发现是安装有问题,于是卸载cpolar进行重新安装。

卸载: curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash -s -- --remove

  • linux正确的安装方法

    需要切换到root账户:sudo -s

    cpolar 安装:curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

    查看版本: cpolar version

    token认证: cpolar authtoken x你的authtokenx

    image-20250413140404808

    添加系统服务:sudo systemctl enable cpolar

    启动服务:sudo systemctl start cpolar

    查看服务:sudo systemctl start cpolar

    image-20250413140724628


PicGo下载与安装

PicGo下载Gitee: PicGo,不推荐Github的下载方式,国内访问受限或者需要科学上网。

image-20250413130616453

  • 下载AppImage结尾的文件

image-20250413130951224

  • 可执行文件右键修改执行权限

    image-20250413131224270

  • 运行PicGo-2.3.1.AppImage

./PicGo-2.3.1.AppImage

可能会遇到报错:dlopen(): error loading libfuse.so.2,AppImages require FUSE to run.You might still be able to extract the contents of this AppImage,if you run it with the --appimage-extract option.See https://github.com/AppImage/AppImageKit/wiki/FUSE for more information

image-20250413131642385

  • 解决办法: sudo apt install libfuse2

    image-20250413131655744

  • PicGo插件下载

    下载地址:picgo-plugin-minio

    可以 git clone https://gitee.com/wanghuya/picgo-plugin-minio.git

    可以下载zip, 然后使用unzip picgo-plugin-minio.zip 进行解压。

  • picgo-plugin-minio 安装

sudo apt install npm
cd picgo-plugin-minio
npm install

image-20250413132817499

  • PicGo配置

    image-20250413133204353

    image-20250413134013564


typora安装

由于多数博客均是使用markdown语法,并非使用html进行编辑。因此在本地编辑希望将插入的图像直接转成对应的公网可访问的图片连接避免一个个替换,typora恰好提供了这样的功能。

image-20250413141635822

image-20250413141724915

  • 安装typora

    sudo dpkg -i typora_1.10.8_amd64.deb

    image-20250413141926128

  • 偏好设置

    image-20250413142048167

    image-20250413142130093

    image-20250413143028582

  • 插入效果
    image-20250413150529805


总结

总结: 本文通过宝塔面板安装Docker,提供MinIO服务以实现对象存储,进一步使用PicGo上传MinIO,并以cpolar实现内网穿透的同时提供公网访问的图像IP以搭建本地图床。


互动

  • 上述内容对你有用吗?

欢迎在评论区解答上述问题,分享你的经验和疑问!

当然,也欢迎一键三连给我鼓励和支持:👍点赞 📁 关注 💬评论 💰打赏。


致谢

欲尽善本文,因所视短浅,怎奈所书皆是瞽言蒭议。行文至此,诚向予助与余者致以谢意。


参考

[1] https://www.cpolar.com/
[2] 山东大学的镜像站
[3] PicGo
[4] picgo-plugin-minio
[5] https://typoraio.cn/releases/all
[6] https://cloud.tencent.com/developer/article/2446060


目录导航


网站公告

今日签到

点亮在社区的每一天
去签到