使用Docker安装 Chevereto V4 搭建自己的图床

文章首发于若绾 教你如何使用 Docker 安装 Chevereto V4 搭建属于自己的图床,转载请注明出处。

在写博客的过程中,图片的使用是必不可少的。它们能够丰富文章内容,增强观众的阅读体验。搭建自己的图床可以让您更好地管理和使用图片资源。图床能够对图片进行压缩和优化,减少图片文件大小,从而加快页面加载速度。快速加载的页面有助于提高用户体验,降低跳出率。此外,将图片储存在图床上,可以减轻您博客服务器的负担,节省存储空间和带宽。这样,您的服务器可以更专注于处理博客内容,提供更好的性能。

这里我要向大家推荐一个非常好用的图床平台:Chevereto。虽然市面上也有其他像兰空图床这样的开源图床软件,但是Chevereto是我使用过感觉最成熟稳定的软件而且它还有很多第三方插件支持。Chevereto分为免费版和Pro版本Pro版本一次性买断费用为75刀,但其实免费版已经很够大家的日常使用了,博主这次要进行安装的是它的Pro版本。

准备工作

**!!首先一定要确保你的服务器上之前没有安装或运行Nginx。Chevereto的Docker版本会运行Nginx的docker版本会与已有的Nignx冲突导致无法运行(亲身踩坑)**

  1. 准备一台VPS,配置最好在1核512M内存10GB硬盘及以上 (后续进阶教程会告诉大家如何使用对象存储拓展存储空间,所以硬盘小一点也没事)
  2. 准备好一个你自己的域名,并将你的域名指向服务器ip

域名解析

如果你是使用cloudflare进行域名解析的可以参照如下图对你的域名添加一个新的A解析。这里我讲使用p.2cu.icu作为我图床的域名。如果你想使用我已经搭建好的Chevereto图床也欢迎大家来使用 V50图床。

准备环境

基础环境

通过命令行来管理你的服务器,通过ssh进入你的服务器后,检查你的服务器是否安装了make、unzip、curl和git。没有的话可以通过以下命令进行安装

代码语言:txt
复制
sudo apt install make unzip curl git

安装Docker (已安装可跳过)

如果你使用的是Ubuntu,你可以通过运行以下方式来安装Docker(其他系统可以参考Docker官网):

配置库
  1. 更新apt软件包索引和安装软件包,以允许apt通过HTTPS使用存储库。:
代码语言:txt
复制
 sudo apt-get update

sudo apt-get install ca-certificates curl gnupg

  1. 添加Docker的官方GPG密钥:
代码语言:txt
复制
 sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

  1. 使用下面的命令来设置版本库:
代码语言:txt
复制
echo \

"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \

"(. /etc/os-release && echo "VERSION_CODENAME")" stable" | \

sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装Docker引擎
  1. 更新apt软件包索引:
代码语言:txt
复制
 sudo apt-get update
  1. 安装Docker Engine、containerd和Docker Compose。 要安装最新版本,请运行:
代码语言:txt
复制
 sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 通过运行hello-world镜像来验证Docker引擎的安装是否成功。
代码语言:txt
复制
 sudo docker run hello-world

这个命令下载一个测试镜像并在一个容器中运行。当容器运行时,它会打印出一条确认信息并退出。

克隆chevereto/docker

我们将使用git来获取我们的基础Docker项目的副本。通过运行以下命令,将在当前工作目录下创建一个docker文件夹。

代码语言:txt
复制

转到这个新创建的docker文件夹。

代码语言:txt
复制
cd docker

docker文件夹中,你可以配置或修改Chevereto的基础配置。

(可选)自定义Chevereto的基础配置

Chevereto默认支持最大64M的图片上传以及512M的内存占用不过你可以在Dockerfile中对其进行修改,以下是对Dockerfile的一些基础配置。

通过vim修改Dockerfile

代码语言:txt
复制
vim Dockerfile

以下是Dockerfile中的相关字段,我添加了一些注释可以帮助各位根据需求进行调整

代码语言:txt
复制
    CHEVERETO_MAX_MEMORY_SIZE=512M \ #Chevereto最大内存占用

CHEVERETO\_MAX\_POST\_SIZE=64M \  #POST请求最大限制,建议与最大上传大小设为一致

CHEVERETO\_MAX\_UPLOAD\_SIZE=64M \  #最大上传大小</code></pre></div></div><h3 id="b6emf" name="%E8%AE%BE%E7%BD%AE%E5%90%8E%E5%8F%B0%E5%B7%A5%E4%BD%9C">设置后台工作</h3><p>Chevereto需要在后台执行定期的系统任务,如删除过期图片、未验证的用户或检查更新。运行以下命令,为你的所有网站设置后台处理。</p><div class="rno-markdown-code"><div class="rno-markdown-code-toolbar"><div class="rno-markdown-code-toolbar-info"><div class="rno-markdown-code-toolbar-item is-type"><span class="is-m-hidden">代码语言:</span>txt</div></div><div class="rno-markdown-code-toolbar-opt"><div class="rno-markdown-code-toolbar-copy"><i class="icon-copy"></i><span class="is-m-hidden">复制</span></div></div></div><div class="developer-code-block"><pre class="prism-token token line-numbers language-txt"><code class="language-txt" style="margin-left:0">make cron</code></pre></div></div><h3 id="cs6rs" name="%E5%88%9B%E5%BB%BAHTTPS%E4%BB%A3%E7%90%86">创建HTTPS代理</h3><p>Chevereto的docker中包含了一个NGIX网络服务器,它将转发对所有Chevereto网站的访问,并提供自动更新的HTTPS证书。</p><p>要设置代理服务器,请运行以下命令:</p><div class="rno-markdown-code"><div class="rno-markdown-code-toolbar"><div class="rno-markdown-code-toolbar-info"><div class="rno-markdown-code-toolbar-item is-type"><span class="is-m-hidden">代码语言:</span>txt</div></div><div class="rno-markdown-code-toolbar-opt"><div class="rno-markdown-code-toolbar-copy"><i class="icon-copy"></i><span class="is-m-hidden">复制</span></div></div></div><div class="developer-code-block"><pre class="prism-token token line-numbers language-txt"><code class="language-txt" style="margin-left:0">make proxy EMAIL\_HTTPS=mail@yourdomain.tld</code></pre></div></div><p>在<code>EMAIL\_HTTPS</code>选项中,设置你的电子邮件。它是HTTPS证书通知所需要用到的。</p><h3 id="6ebr7" name="%E5%88%9B%E5%BB%BAChevereto%E9%95%9C%E5%83%8F%EF%BC%88%E5%85%8D%E8%B4%B9%E7%89%88%E5%8F%AF%E8%B7%B3%E8%BF%87%EF%BC%89">创建Chevereto镜像(免费版可跳过)</h3><p>这个过程会建立Chevereto容器镜像。</p><p>💡 使用免费版时省略此步骤,因为镜像可以在这里看到 GHCR.</p><div class="rno-markdown-code"><div class="rno-markdown-code-toolbar"><div class="rno-markdown-code-toolbar-info"><div class="rno-markdown-code-toolbar-item is-type"><span class="is-m-hidden">代码语言:</span>txt</div></div><div class="rno-markdown-code-toolbar-opt"><div class="rno-markdown-code-toolbar-copy"><i class="icon-copy"></i><span class="is-m-hidden">复制</span></div></div></div><div class="developer-code-block"><pre class="prism-token token line-numbers language-txt"><code class="language-txt" style="margin-left:0">make image</code></pre></div></div><p>这个过程将要求你提供许可证密钥。如果你购买了Pro版可以在这里找到你的密钥(详细见下图)。</p><figure class=""><div class="rno-markdown-img-url" style="text-align:center"><div class="rno-markdown-img-url-inner" style="width:100%"><div style="width:100%"><img src="https://cdn.static.attains.cn/app/developer-bbs/upload/1723079078740463517.webp" /></div></div></div></figure><blockquote><p>如果没有提供许可证或你输入了无效的许可证,系统将建立免费的图像。</p></blockquote><h3 id="amqvm" name="%E8%AE%BE%E7%BD%AE%E5%9F%9F%E5%90%8D">设置域名</h3><p>你可以使用以下命令为<code>p.v50.tools</code>域名创建名为<code>imagehost</code>命名空间(命名空间可以自定义,但是HOSTNANE一定要是之前解析你主机ip地址的域名):</p><div class="rno-markdown-code"><div class="rno-markdown-code-toolbar"><div class="rno-markdown-code-toolbar-info"><div class="rno-markdown-code-toolbar-item is-type"><span class="is-m-hidden">代码语言:</span>txt</div></div><div class="rno-markdown-code-toolbar-opt"><div class="rno-markdown-code-toolbar-copy"><i class="icon-copy"></i><span class="is-m-hidden">复制</span></div></div></div><div class="developer-code-block"><pre class="prism-token token line-numbers language-txt"><code class="language-txt" style="margin-left:0">make namespace NAMESPACE=imagehost HOSTNAME=`p.v50.tools`</code></pre></div></div><blockquote><p>你可以在<code>./namespace</code>文件夹下检查命名空间文件。</p></blockquote><h3 id="79cbp" name="%E8%BF%90%E8%A1%8CChevereto%E7%BD%91%E7%AB%99">运行Chevereto网站</h3><p>Pro版本:要创建一个新的网站,请通过NAMESPACE选项运行<code>make spawn</code>命令。</p><div class="rno-markdown-code"><div class="rno-markdown-code-toolbar"><div class="rno-markdown-code-toolbar-info"><div class="rno-markdown-code-toolbar-item is-type"><span class="is-m-hidden">代码语言:</span>txt</div></div><div class="rno-markdown-code-toolbar-opt"><div class="rno-markdown-code-toolbar-copy"><i class="icon-copy"></i><span class="is-m-hidden">复制</span></div></div></div><div class="developer-code-block"><pre class="prism-token token line-numbers language-txt"><code class="language-txt" style="margin-left:0">make spawn NAMESPACE=imagehost</code></pre></div></div><p>免费版本:当使用免费版时请使用通过<code>EDITION=free</code></p><div class="rno-markdown-code"><div class="rno-markdown-code-toolbar"><div class="rno-markdown-code-toolbar-info"><div class="rno-markdown-code-toolbar-item is-type"><span class="is-m-hidden">代码语言:</span>txt</div></div><div class="rno-markdown-code-toolbar-opt"><div class="rno-markdown-code-toolbar-copy"><i class="icon-copy"></i><span class="is-m-hidden">复制</span></div></div></div><div class="developer-code-block"><pre class="prism-token token line-numbers language-txt"><code class="language-txt" style="margin-left:0">make spawn NAMESPACE=example EDITION=free</code></pre></div></div><p>🎉 Chevereto现在已经开始运行了,接下来你可以通过你的域名来访问你自己的Chevereto图床了。</p><p>关于Chevereto的进阶使用,可以看我的下一篇文章:Chevereto V4的进阶使用:挂载外部对象存储拓展存储空间</p>