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

寫在前面:本博客僅作記錄學習之用,部分圖片來自網絡,如需引用請注明出處,同時如有侵犯您的權益,請聯系刪除!


文章目錄

  • 前言
  • 寶塔安裝Docker
  • MinIO 安裝與設置
  • cploar內網穿透
  • PicGo下載與安裝
  • typora安裝
  • 總結
  • 互動
  • 致謝
  • 參考
  • 目錄導航


前言

在博客創作過程中,圖片管理是不可或缺的重要環節。對于眾多依賴 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恰好提供了這樣的功能。

  • typora下載: ? https://typoraio.cn/releases/all

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


目錄導航

  • 【博客目錄】

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901439.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901439.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901439.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

centos-LLM-生物信息-BioGPT-使用1

參考: GitHub - microsoft/BioGPT https://github.com/microsoft/BioGPT BioGPT:用于生物醫學文本生成和挖掘的生成式預訓練轉換器 |生物信息學簡報 |牛津學術 — BioGPT: generative pre-trained transformer for biomedical text generation and mini…

高效爬蟲:一文掌握 Crawlee 的詳細使用(web高效抓取和瀏覽器自動化庫)

更多內容請見: 爬蟲和逆向教程-專欄介紹和目錄 文章目錄 一、Crawlee概述1.1 Crawlee介紹1.2 為什么 Crawlee 是網頁抓取和爬取的首選?1.3 為什么使用 Crawlee 而不是 Scrapy1.4 Crawlee的安裝二、Crawlee的基本使用2.1 BeautifulSoupCrawler的使用方式2.2 ParselCrawler的使…

架構總覽怎么寫,才算工業級?

??系統架構文檔是整個項目最重要的起點,但很多人第一章就“寫穿了”: 不是寫得太細,就是沒有重點。想要寫出高質量、能協作、能傳承的架構文檔,這一篇會告訴你應該怎么做—— ? 架構總覽的終極目標 明確邊界、定義角色、畫清數據流 別講執行細節,別深入函數調用。 ? 架…

優先級隊列(堆二叉樹)底層的實現:

我們繼續來看我們的優先級隊列: 優先級隊列我們說過,他也是一個容器適配器,要依賴我們的容器來存儲數據; 他的第二個參數就是我們的容器,這個容器的默認的缺省值是vector,然后他的第三個參數,我…

GIC驅動程序分析

今天呢,我們就來具體的講一下GIC的驅動源碼啦,這個才是重點來著,我們來看看: GIC中的重要函數和結構體: 沿著中斷的處理流程,GIC涉及這4個重要部分: CPU從異常向量表中調用handle_arch_irq&am…

java操作redis庫,開箱即用

application.yml spring:application:name: demo#Redis相關配置redis:data:# 地址host: localhost# 端口,默認為6379port: 6379# 數據庫索引database: 0# 密碼password:# 連接超時時間timeout: 10slettuce:pool:# 連接池中的最小空閑連接min-idle: 0# 連接池中的最…

Cribl 通過Splunk search collector 來收集數據

今天利用Spliunk search collector 來收集數據啦:還是要先cribl 的官方文檔: Splunk Search Collector | Cribl Docs Splunk Search Collector Cribl Stream supports collecting search results from Splunk queries. The queries can be both simple and complex, as well a…

What Was the “Game Genie“ Cheat Device, and How Did It Work?

什么是“Game Genie”作弊裝置,它是如何工作的? First released in 1991, the Game Genie let players enter special codes that made video games easier or unlocked other functions. Nintendo didnt like it, but many gamers loved it. Heres wha…

位運算題目:連接連續二進制數字

文章目錄 題目標題和出處難度題目描述要求示例數據范圍 解法思路和算法代碼復雜度分析 題目 標題和出處 標題:連接連續二進制數字 出處:1680. 連接連續二進制數字 難度 5 級 題目描述 要求 給定一個整數 n \texttt{n} n,將 1 \text…

第十六屆藍橋杯Java b組(試題C:電池分組)

問題描述: 輸入格式: 輸出格式: 樣例輸入: 2 3 1 2 3 4 1 2 3 4 樣例輸出: YES NO 說明/提示 評測用例規模與約定 對于 30% 的評測用例,1≤T≤10,2≤N≤100,1≤Ai?≤10^3。對于 100…

63. 評論日記

2025年4月14日18:53:30 雷軍這次是真的累了_嗶哩嗶哩_bilibili

電商中的訂單支付(內網穿透)

支付頁面 接口文檔 Operation(summary"獲取訂單信息") GetMapping("auth/{orderId}") public Reuslt<OrderInfo> getOrderInfo(Parameter(name"orderId",description"訂單id",requiredtrue) PathVaariable Long orderId){OrderI…

MySQL表的使用(4)

首先回顧一下之前所學的增刪查改&#xff0c;這些覆蓋了平時使用的80% 我們上節課中學習到了MySQL的約束 其中Primary key 是主鍵約束&#xff0c;我們今天要學習的是外鍵約束 插入一個表 外鍵約束 父表 子表 這條記錄中classid為5時候&#xff0c;不能插入&#xff1b; 刪除…

Kotlin作用域函數

在 Kotlin 中&#xff0c;.apply 是一個 作用域函數&#xff08;Scope Function&#xff09;&#xff0c;它允許你在一個對象的上下文中執行代碼塊&#xff0c;并返回該對象本身。它的設計目的是為了 對象初始化 或 鏈式調用 時保持代碼的簡潔性和可讀性。 // 不使用 apply va…

C#集合List<T>與HashSet<T>的區別

在C#中&#xff0c;List和HashSet都是用于存儲元素的集合&#xff0c;但它們在內部實現、用途、性能特性以及使用場景上存在一些關鍵區別。 內部實現 List&#xff1a;基于數組實現的&#xff0c;可以包含重復的元素&#xff0c;并且元素是按照添加的順序存儲的。 HashSet&…

Python 實現的運籌優化系統數學建模詳解(最大最小化模型)

一、引言 在數學建模的實際應用里&#xff0c;最大最小化模型是一種極為關鍵的優化模型。它的核心目標是找出一組決策變量&#xff0c;讓多個目標函數值里的最大值盡可能小。該模型在諸多領域&#xff0c;如資源分配、選址規劃等&#xff0c;都有廣泛的應用。本文將深入剖析最大…

數據庫的種類及常見類型

一&#xff0c;數據庫的種類 最常見的數據庫類型分為兩種&#xff0c;關系型數據庫和非關系型數據庫。 二&#xff0c;關系型數據庫介紹 生產環境主流的關系型數據庫有 Oracle、SQL Server、MySQL/MariaDB等。 關系型數據庫在存儲數據時實際就是采用的一張二維表&#xff0…

PE文件(十五)綁定導入表

我們在分析Windows自帶的一些程序時&#xff0c;常常發現有的程序&#xff0c;如notepad&#xff0c;他的IAT表在文件加載內存前已經完成綁定&#xff0c;存儲了函數的地址。這樣做可以使得程序是無需修改IAT表而直接啟動&#xff0c;這時程序啟動速度變快。但這種方式只適用于…

計算機網絡分層模型:架構與原理

前言 計算機網絡通過不同的層次結構來實現通信和數據傳輸&#xff0c;這種分層設計不僅使得網絡更加模塊化和靈活&#xff0c;也使得不同類型的通信能夠順利進行。在網絡協議和通信體系中&#xff0c;最廣為人知的分層模型有 OSI模型 和 TCP/IP模型。這兩種模型分別定義了計算…

Ollama模型顯存管理機制解析與Flask部署方案對比

一、Ollama顯存釋放機制 Ollama部署模型后&#xff0c;顯存占用分為兩種情況&#xff1a; 首次調用后短暫閑置&#xff08;約5分鐘內&#xff09;&#xff1a; ? 釋放KV Cache等中間計算數據&#xff08;約回收30%-50%顯存&#xff09;。 ? 模型權重仍保留在顯存中&#xf…