可道云官网https://kodcloud.com小兔互联官网https://moebun.com/aff/INILUDUF平时写博客的时候我经常会遇到一个小麻烦有时候想给大家分享一些工具、项目资源或者其它一些文件但这些文件要么太大不方便放在仓库里要么托管在网盘上又容易过期或者限速。久而久之我就萌生了一个想法——干脆自己搭一个网盘吧不过我又不想再去折腾复杂的文件系统于是想到用对象存储来做底层存储既省心又稳定再配合一个界面好看、功能齐全的文件管理面板比如可道云KodCloud就能轻松实现上传、预览、分享等功能。这篇文章就来记录一下我用Docker 部署可道云 对象存储的全过程让博客文件分享这件小事变得优雅又高效。为什么选择可道云 对象存储的组合其实在写这个文章之前或者说有了文件分享的需求之后我其实已经尝试过很多种方案了比如国内的网盘百度网盘、阿里云盘、腾讯微云等这些网盘都非常省心但是缺点也很明显就是限速、限流量、限空间以及可能会对部分文件进行审查导致文件时不时就会失效。此外网盘并不统一可能你用的网盘是百度网盘但是别人用的网盘是阿里云盘这就导致了分享文件的时候需要将文件上传到多个网盘然后再下载下来非常麻烦。自建网盘比如 Nextcloud、Owncloud 以及可道云等这些网盘都是开源的可以自己搭建自由度比较高并且服务掌握在自己手里非常灵活但是缺点也很明显就是文件存储于本地如果服务器挂了那么文件也就丢失了。此外直接这样分享的话文件传输速度也会受到服务器带宽的限制我的小水管只有不到 100 Mbps如果多个人同时下载那么速度就会非常慢严重影响用户体验。所以我最终选择了可道云 对象存储的组合既省心又稳定。可道云可以像网盘一样进行文件的共享其他人可以通过分享链接进行文件的下载不用在意自己用的什么网盘只要有安装浏览器就可以直接下载。对象存储通过分布式存储保证了文件的安全与稳定性即使服务器挂了文件也不会丢失而且文件传输速度也不会受到服务器带宽的限制可以支持高并发的下载因为文件存储于对象存储中文件传输速度是由对象存储的带宽决定的而不是服务器带宽决定的一般来说对象存储的带宽都比较高。在本文中将会使用小兔互联的对象存储和CloudFlare R2 存储为例子进行说明。小兔互联的对象存储是收费的价格还是比较实惠的其上游是雨云服务器位于国内无论是访问速度还是稳定性都很高并且默认只会使用你所选择的套餐内的流量不开启弹性计费的情况下即使流量被刷干了也不会产生额外费用只是会暂停服务到下个月刷新不过一般也不会有人去刷流量吧。CloudFlare R2 存储是免费的每个月拥有 10G 的空间一个月每天占用的最大空间之和的平均数 10G 就是免费的超出会收取额外费用也有上传和下载的次数限制其速度在国内也是不错的这些限制对于个人使用来说基本上是够用的。部署可道云官方文档https://docs.kodcloud.com/setup/docker我们按照官方文档的说明进行以下的操作创建目录作为可道云容器的映射目录用于映射可道云的配置文件、数据文件、日志文件以及数据库等。# 注意这里是我自己服务器对应的目录大家可以根据自己的需求进行修改mkdir-p~/doc/docker/kodcloud创建数据库环境变量配置文件 db.env用于配置可道云的数据库信息其中内容如下MYSQL_PASSWORD0YXl7Q^kBGFO*g8p96^ MYSQL_DATABASEkodbox MYSQL_USERkodboxMYSQL_PASSWORD 是数据库密码我生成了一个随机密码大家可以根据自己的需求进行修改。创建 compose.yml 文件用于配置可道云的容器信息其中内容如下services:db:image:mariadb:ltscommand:--transaction-isolationREAD-COMMITTEDrestart:alwaysvolumes:-./db:/var/lib/mysql#./db是数据库持久化目录可以修改# - ./etc/mysql/conf.d:/etc/mysql/conf.d #增加自定义mysql配置environment:-MYSQL_ROOT_PASSWORD0YXl7Q^kBGFO*g8p96^# 和上面的MYSQL_PASSWORD保持一致-MARIADB_AUTO_UPGRADE1-MARIADB_DISABLE_UPGRADE_BACKUP1env_file:-db.envapp:image:kodcloud/kodboxrestart:alwaysports:-80:80#左边80是映射到宿主机的端口可以修改并且建议修改因为80端口可能被其它服务占用volumes:-./site:/var/www/html#./site是站点目录位置可以修改environment:-MYSQL_HOSTdb-REDIS_HOSTredisenv_file:-db.envdepends_on:-db-redisredis:image:redis:alpinerestart:alwaysMYSQL_ROOT_PASSWORD 和上面的数据库密码保持一致。ports 中的 80 端口可以根据自己的需求进行修改因为 80 端口可能被其它服务占用这时候因为端口为非标准的 http 端口所以需要配置 nginx 或其它反向代理服务器才能正常访问。配置完成使用以下命令启动可道云dockercompose up-dCaddy 配置反向代理我使用的是 caddy 进行了反向代理具体可以参考我的另一篇文章Caddy反向代理。在这里我们只需要在 Caddyfile 中增加以下配置即可你的域名或者端口 { tls 证书.crt 证书.key reverse_proxy 127.0.0.1:21773 }“你的域名或者端口”需要替换成你自己的域名或者端口。21773 是上面 compose.yml 文件中 app 服务的端口也就是刚刚强调过的可以修改的 80 端口我的compose.yml 文件中已经修改成了 21773。配置完之后重启 caddy 即可生效使用配置的域名或者端口即可正常访问可道云。进入可道云并配置对象存储使用配置的域名或者端口访问可道云进入可道云后首先需要配置管理员账号和密码这一部分就不用我过多赘述了你自己配置好管理员账号和密码后登录即可。进入可道云后首先需要配置对象存储因为可道云默认使用的是本地存储我们需要将其修改为对象存储才能实现文件的存储和分享。小兔互联对象存储配置获取访问凭证信息进入小兔互联的对象存储控制台选择我们购买的对象存储实例点击管理即可看到相关信息如下创建存储桶并添加网络挂载我们点击创建存储桶自己取一个名字只能是字母数字和 ‘-’不能是其它字符比如我取的是 emtime所属实例选择我们购买的实例点击创建即可创建好我们对应的存储桶。回到可道云我们点击左侧的文件管理然后点击网络挂载点击新增网络挂载存储类型选择MinIO。名称自定义比如我这里填写的是小兔互联。空间大小根据购买的套餐填写比如我这里填写的是 10表示 10GB。Access Key ID对应访问凭证信息图片中 Access Key。Access Key Secret对应访问凭证信息图片中 Secret Key。Bucket 名称就是我们自己创建的存储桶名称比如我这里填写的是 emtime。地域节点对应访问凭证信息图片中的 API 端点。存储区域无需填写。存储目录默认即可。允许文件缩略图按自己的需求选择我这里没有开启。服务器中转如果开启文件传输会先经过可道云服务器然后通过服务器再传输到对象存储一般会占用服务器带宽。除非网络不通或直连不稳定否则建议关闭让客户端直接访问对象存储效率会更高。设为默认按自己的需求选择我这里将小兔存储设置为了默认存储。这样我们的对象存储就配置好了接下来我们就可以上传文件了上传的文件会自动存储到我们配置的对象存储中。CloudFlare R2 配置说来 CloudFlare 也算是“赛博善人”了免费功能非常多CDN 加速、虚拟组网、内网穿透Cloudflare Tunnel甚至还有SSL 证书自动签发与续期。对个人开发者或小项目来说这些工具几乎能解决大部分对外访问和安全的烦恼省钱又省心。不过比较可惜的是在国内用的话体验没那么理想偶尔会遇到访问慢或者节点不太稳定的情况。订阅 R2 存储并添加存储桶如图所示我们在对应菜单中点击 R2 对象存储然后在界面的右上角点击创建存储桶根据图片进行设置即可。获取 APICloudFlare 的对象存储提供了兼容 S3 的 API而可道云也支持 S3所以我们直接创建 S3 API 即可。按照我图片中的步骤进行操作即可。最后这个图片是我们创建的 API 的信息将图片中的信息最好全都复制出来后面配置可道云的时候需要用到。可道云添加网络挂载和前面差不多回到可道云我们点击左侧的文件管理然后点击网络挂载点击新增网络挂载存储类型选择S3 存储。名称自定义比如我这里填写的是 Cloudflare R2。空间大小CloudFlare R2 对象存储免费版本也是 10GB所以这里填写 10。Access Key ID对应 API 信息中的访问密钥 ID。Access Key Secret对应 API 信息中的机密访问密钥。Bucket 名称创建存储桶时填写的名称。地域节点对应 API 信息中的为 S3 客户端使用管辖权地特定的终结点。存储区域无需填写。存储目录默认即可。签名版本默认 V4 即可。允许文件缩略图按自己的需求选择我这里没有开启。服务器中转和之前一样除非网络不通或直连不稳定否则建议关闭让客户端直接访问对象存储效率会更高。设为默认按自己的需求选择因为我设置了小兔互联的对象存储为默认存储所以这里就不勾选了。这样我们的 CloudFlare R2 对象存储就配置好了接下来我们就可以上传文件了上传的文件会自动存储到我们配置的对象存储中。测试使用配置完成后我们就可以像使用普通网盘一样上传、下载和分享文件了。上传一个文件后直接生成分享链接其他人点击即可下载整个传输过程都会通过对象存储完成不再占用你服务器的带宽。我分别测试了小兔互联和 Cloudflare R2 两个对象存储的下载速度本地带宽为 1000 Mbps小兔互联可以看到小兔互联的下载速度还是很快的而且完全不占用服务器流量体验非常好。CloudFlare R2Cloudflare R2 的速度也很不错只是由于节点主要在国外在国内的访问速度和稳定性稍差一些。不过对于个人使用来说它依然是一个非常有性价比甚至可以说“白嫖友好”的方案。总结整体来说这套 “可道云 对象存储” 的组合既能拥有类似网盘的便捷体验又不必担心限速等问题。如果你手上也有一台闲置的服务器不妨试试这套方案。搭建过程不复杂但带来的便利却很明显——让博客文件分享更轻、更快也更优雅。阅读原文Docker 部署个人网盘
Docker部署个人网盘
发布时间:2026/5/26 6:19:04
可道云官网https://kodcloud.com小兔互联官网https://moebun.com/aff/INILUDUF平时写博客的时候我经常会遇到一个小麻烦有时候想给大家分享一些工具、项目资源或者其它一些文件但这些文件要么太大不方便放在仓库里要么托管在网盘上又容易过期或者限速。久而久之我就萌生了一个想法——干脆自己搭一个网盘吧不过我又不想再去折腾复杂的文件系统于是想到用对象存储来做底层存储既省心又稳定再配合一个界面好看、功能齐全的文件管理面板比如可道云KodCloud就能轻松实现上传、预览、分享等功能。这篇文章就来记录一下我用Docker 部署可道云 对象存储的全过程让博客文件分享这件小事变得优雅又高效。为什么选择可道云 对象存储的组合其实在写这个文章之前或者说有了文件分享的需求之后我其实已经尝试过很多种方案了比如国内的网盘百度网盘、阿里云盘、腾讯微云等这些网盘都非常省心但是缺点也很明显就是限速、限流量、限空间以及可能会对部分文件进行审查导致文件时不时就会失效。此外网盘并不统一可能你用的网盘是百度网盘但是别人用的网盘是阿里云盘这就导致了分享文件的时候需要将文件上传到多个网盘然后再下载下来非常麻烦。自建网盘比如 Nextcloud、Owncloud 以及可道云等这些网盘都是开源的可以自己搭建自由度比较高并且服务掌握在自己手里非常灵活但是缺点也很明显就是文件存储于本地如果服务器挂了那么文件也就丢失了。此外直接这样分享的话文件传输速度也会受到服务器带宽的限制我的小水管只有不到 100 Mbps如果多个人同时下载那么速度就会非常慢严重影响用户体验。所以我最终选择了可道云 对象存储的组合既省心又稳定。可道云可以像网盘一样进行文件的共享其他人可以通过分享链接进行文件的下载不用在意自己用的什么网盘只要有安装浏览器就可以直接下载。对象存储通过分布式存储保证了文件的安全与稳定性即使服务器挂了文件也不会丢失而且文件传输速度也不会受到服务器带宽的限制可以支持高并发的下载因为文件存储于对象存储中文件传输速度是由对象存储的带宽决定的而不是服务器带宽决定的一般来说对象存储的带宽都比较高。在本文中将会使用小兔互联的对象存储和CloudFlare R2 存储为例子进行说明。小兔互联的对象存储是收费的价格还是比较实惠的其上游是雨云服务器位于国内无论是访问速度还是稳定性都很高并且默认只会使用你所选择的套餐内的流量不开启弹性计费的情况下即使流量被刷干了也不会产生额外费用只是会暂停服务到下个月刷新不过一般也不会有人去刷流量吧。CloudFlare R2 存储是免费的每个月拥有 10G 的空间一个月每天占用的最大空间之和的平均数 10G 就是免费的超出会收取额外费用也有上传和下载的次数限制其速度在国内也是不错的这些限制对于个人使用来说基本上是够用的。部署可道云官方文档https://docs.kodcloud.com/setup/docker我们按照官方文档的说明进行以下的操作创建目录作为可道云容器的映射目录用于映射可道云的配置文件、数据文件、日志文件以及数据库等。# 注意这里是我自己服务器对应的目录大家可以根据自己的需求进行修改mkdir-p~/doc/docker/kodcloud创建数据库环境变量配置文件 db.env用于配置可道云的数据库信息其中内容如下MYSQL_PASSWORD0YXl7Q^kBGFO*g8p96^ MYSQL_DATABASEkodbox MYSQL_USERkodboxMYSQL_PASSWORD 是数据库密码我生成了一个随机密码大家可以根据自己的需求进行修改。创建 compose.yml 文件用于配置可道云的容器信息其中内容如下services:db:image:mariadb:ltscommand:--transaction-isolationREAD-COMMITTEDrestart:alwaysvolumes:-./db:/var/lib/mysql#./db是数据库持久化目录可以修改# - ./etc/mysql/conf.d:/etc/mysql/conf.d #增加自定义mysql配置environment:-MYSQL_ROOT_PASSWORD0YXl7Q^kBGFO*g8p96^# 和上面的MYSQL_PASSWORD保持一致-MARIADB_AUTO_UPGRADE1-MARIADB_DISABLE_UPGRADE_BACKUP1env_file:-db.envapp:image:kodcloud/kodboxrestart:alwaysports:-80:80#左边80是映射到宿主机的端口可以修改并且建议修改因为80端口可能被其它服务占用volumes:-./site:/var/www/html#./site是站点目录位置可以修改environment:-MYSQL_HOSTdb-REDIS_HOSTredisenv_file:-db.envdepends_on:-db-redisredis:image:redis:alpinerestart:alwaysMYSQL_ROOT_PASSWORD 和上面的数据库密码保持一致。ports 中的 80 端口可以根据自己的需求进行修改因为 80 端口可能被其它服务占用这时候因为端口为非标准的 http 端口所以需要配置 nginx 或其它反向代理服务器才能正常访问。配置完成使用以下命令启动可道云dockercompose up-dCaddy 配置反向代理我使用的是 caddy 进行了反向代理具体可以参考我的另一篇文章Caddy反向代理。在这里我们只需要在 Caddyfile 中增加以下配置即可你的域名或者端口 { tls 证书.crt 证书.key reverse_proxy 127.0.0.1:21773 }“你的域名或者端口”需要替换成你自己的域名或者端口。21773 是上面 compose.yml 文件中 app 服务的端口也就是刚刚强调过的可以修改的 80 端口我的compose.yml 文件中已经修改成了 21773。配置完之后重启 caddy 即可生效使用配置的域名或者端口即可正常访问可道云。进入可道云并配置对象存储使用配置的域名或者端口访问可道云进入可道云后首先需要配置管理员账号和密码这一部分就不用我过多赘述了你自己配置好管理员账号和密码后登录即可。进入可道云后首先需要配置对象存储因为可道云默认使用的是本地存储我们需要将其修改为对象存储才能实现文件的存储和分享。小兔互联对象存储配置获取访问凭证信息进入小兔互联的对象存储控制台选择我们购买的对象存储实例点击管理即可看到相关信息如下创建存储桶并添加网络挂载我们点击创建存储桶自己取一个名字只能是字母数字和 ‘-’不能是其它字符比如我取的是 emtime所属实例选择我们购买的实例点击创建即可创建好我们对应的存储桶。回到可道云我们点击左侧的文件管理然后点击网络挂载点击新增网络挂载存储类型选择MinIO。名称自定义比如我这里填写的是小兔互联。空间大小根据购买的套餐填写比如我这里填写的是 10表示 10GB。Access Key ID对应访问凭证信息图片中 Access Key。Access Key Secret对应访问凭证信息图片中 Secret Key。Bucket 名称就是我们自己创建的存储桶名称比如我这里填写的是 emtime。地域节点对应访问凭证信息图片中的 API 端点。存储区域无需填写。存储目录默认即可。允许文件缩略图按自己的需求选择我这里没有开启。服务器中转如果开启文件传输会先经过可道云服务器然后通过服务器再传输到对象存储一般会占用服务器带宽。除非网络不通或直连不稳定否则建议关闭让客户端直接访问对象存储效率会更高。设为默认按自己的需求选择我这里将小兔存储设置为了默认存储。这样我们的对象存储就配置好了接下来我们就可以上传文件了上传的文件会自动存储到我们配置的对象存储中。CloudFlare R2 配置说来 CloudFlare 也算是“赛博善人”了免费功能非常多CDN 加速、虚拟组网、内网穿透Cloudflare Tunnel甚至还有SSL 证书自动签发与续期。对个人开发者或小项目来说这些工具几乎能解决大部分对外访问和安全的烦恼省钱又省心。不过比较可惜的是在国内用的话体验没那么理想偶尔会遇到访问慢或者节点不太稳定的情况。订阅 R2 存储并添加存储桶如图所示我们在对应菜单中点击 R2 对象存储然后在界面的右上角点击创建存储桶根据图片进行设置即可。获取 APICloudFlare 的对象存储提供了兼容 S3 的 API而可道云也支持 S3所以我们直接创建 S3 API 即可。按照我图片中的步骤进行操作即可。最后这个图片是我们创建的 API 的信息将图片中的信息最好全都复制出来后面配置可道云的时候需要用到。可道云添加网络挂载和前面差不多回到可道云我们点击左侧的文件管理然后点击网络挂载点击新增网络挂载存储类型选择S3 存储。名称自定义比如我这里填写的是 Cloudflare R2。空间大小CloudFlare R2 对象存储免费版本也是 10GB所以这里填写 10。Access Key ID对应 API 信息中的访问密钥 ID。Access Key Secret对应 API 信息中的机密访问密钥。Bucket 名称创建存储桶时填写的名称。地域节点对应 API 信息中的为 S3 客户端使用管辖权地特定的终结点。存储区域无需填写。存储目录默认即可。签名版本默认 V4 即可。允许文件缩略图按自己的需求选择我这里没有开启。服务器中转和之前一样除非网络不通或直连不稳定否则建议关闭让客户端直接访问对象存储效率会更高。设为默认按自己的需求选择因为我设置了小兔互联的对象存储为默认存储所以这里就不勾选了。这样我们的 CloudFlare R2 对象存储就配置好了接下来我们就可以上传文件了上传的文件会自动存储到我们配置的对象存储中。测试使用配置完成后我们就可以像使用普通网盘一样上传、下载和分享文件了。上传一个文件后直接生成分享链接其他人点击即可下载整个传输过程都会通过对象存储完成不再占用你服务器的带宽。我分别测试了小兔互联和 Cloudflare R2 两个对象存储的下载速度本地带宽为 1000 Mbps小兔互联可以看到小兔互联的下载速度还是很快的而且完全不占用服务器流量体验非常好。CloudFlare R2Cloudflare R2 的速度也很不错只是由于节点主要在国外在国内的访问速度和稳定性稍差一些。不过对于个人使用来说它依然是一个非常有性价比甚至可以说“白嫖友好”的方案。总结整体来说这套 “可道云 对象存储” 的组合既能拥有类似网盘的便捷体验又不必担心限速等问题。如果你手上也有一台闲置的服务器不妨试试这套方案。搭建过程不复杂但带来的便利却很明显——让博客文件分享更轻、更快也更优雅。阅读原文Docker 部署个人网盘