☰
Cloudreve 自建实战:让一套多后端文件存储服务跑在 5212 端口
2026/10/29 1:56:51 网站建设 项目流程

Cloudreve 自建实战:让一套多后端文件存储服务跑在 5212 端口

【免费下载链接】cloudreve🌩 Self-hosted file management and sharing system, supports multiple storage providers项目地址: https://gitcode.com/gh_mirrors/cl/cloudreve

Cloudreve 是一个自托管的文件管理与分享系统,支持本地磁盘、OneDrive、阿里云 OSS、S3 等存储后端,并内置 WebDAV 协议和分享链接功能。读完这篇教程,你可以在一台 Linux 机器上完成源码构建、参数覆盖、启动服务,并用管理员账号登录 Web 管理端。

🧭 谁适合跟着做

适合两类人:手里有一台可自控的服务器或开发机,希望把文件、用户权限、存储后端都握在自己手里的人;以及已经有一朵云盘账号(OneDrive、OSS 等),想把它挂进一套带权限体系的统一入口的人。如果你只是临时分享几个文件,或完全没有 Go 环境也不想装,仓库里附带的 Dockerfile 走官方镜像会更快,本文不展开。

环境准备

  • Linux(x86_64)或 macOS;官方 Docker 镜像基于 Alpine
  • Go 1.26 及以上(go.mod 声明go 1.26.0)
  • git
  • 5212 端口未被占用,这是 Cloudreve 默认的Listen值
  • 可选:MySQL 或 PostgreSQL、Redis,仅在切换数据库或多实例部署时需要

实施过程

克隆 Cloudreve 源码

把仓库完整拉到部署机,后续所有操作都在这个目录内完成。

git clone https://gitcode.com/gh_mirrors/cl/Cloudreve cd Cloudreve

完成标志:目录下能看到go.mod和main.go。

构建 cloudreve 二进制

在项目根目录编译,产物是单个可执行文件,前端静态资源已内嵌,不需要额外的 web 服务。

go build -o cloudreve .

完成标志:当前目录生成cloudreve文件,执行./cloudreve --help能看到server、migrate等子命令。

覆盖启动参数并初始化配置

配置文件不需要手写。首次运行时若找不到 conf.ini,程序会自动生成一份,默认使用 sqlite 数据文件、监听:5212。要换数据库或端口,用CR_CONF_前缀的环境变量按Section.Key覆盖即可,它会与生成的 conf.ini 合并生效,不用手动编辑任何文件。

CR_CONF_Database.Type=postgres \ CR_CONF_Database.Host=127.0.0.1 \ CR_CONF_Database.User=cloudreve \ CR_CONF_System.Listen=:5212 \ ./cloudreve server

完成标志:目录中自动出现 conf.ini,且日志中能看到对应配置项的覆盖记录。

启动服务并验证初始化

首次启动会初始化数据库表结构,写入管理员组、用户组、匿名组等默认分组和主节点记录,之后才进入监听状态。

./cloudreve server

完成标志:终端先打印版本横幅(当前源码为 V4.14.0),随后输出Listening to ":5212"这一行日志。

验证是否跑通

  • 浏览器打开 http://localhost:5212,应出现登录页而不是连接错误;若改过端口,按新端口访问
  • 注册第一个账号后直接登录。代码里对第一个注册的用户(ID 为 1)会自动提升进管理员组,无需手动授权,进入管理面板说明整条链路通了

常见问题

问:启动报bind: address already in use?答:5212 被占用。用CR_CONF_System.Listen=:8080 ./cloudreve server换端口,反向代理的地址同步修改即可。

问:想接 MySQL,但找不到 conf.ini 该改哪里?答:不必手写。启动时带上CR_CONF_Database.Type=mysql,再按CR_CONF_Database.Host、CR_CONF_Database.Name、CR_CONF_Database.User、CR_CONF_Database.Password补全连接信息。支持 sqlite、mysql、postgres、mariadb、mssql 五种类型,参数定义在 pkg/conf/types.go 的 Database 结构里。

问:go build直接报版本不支持?答:go.mod 要求 Go 1.26。升级本地 Go 工具链,不要试图改 go.mod 降级。

进阶方向

  • 想挂更多云存储:本地、从机、七牛、COS、OBS、OSS、KS3、OneDrive、S3 各有一个独立驱动目录,集中在 pkg/filemanager/driver/
  • 想给客户端开 WebDAV 账号:协议实现和属性协商在 pkg/webdav/
  • 想看缩略图、远端下载、回收站这些后台任务如何调度:队列与调度器在 pkg/queue/
  • 想把单实例扩成多节点:节点池和路由逻辑在 pkg/cluster/

到这里,你的 Cloudreve 实例已经在线,且第一个注册账号拥有管理员权限。下一步进入管理面板创建第二条存储策略,把 OneDrive 或 OSS 接进来,让云账号承载真实文件。

【免费下载链接】cloudreve🌩 Self-hosted file management and sharing system, supports multiple storage providers项目地址: https://gitcode.com/gh_mirrors/cl/cloudreve

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询