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),仅供参考