
简介这是一套基于Cloudreve的私人云盘源码面向希望自建文件存储与共享服务的个人站长、中小企业及运维学习者。它解决的是公有网盘容量受限、隐私不足的问题可部署在本地服务器上让员工随时备份数据也支持个人搭建简洁美观的云网盘系统实现文件共享与传输兼容各类文件与视频。压缩包共约2000个文件以776个php核心程序、322个js脚本、148个html页面和71个css样式为主另含23个sql数据库脚本、46个json配置及44个md说明文档整体约19.42MB结构完整便于二次开发。资源附带以宝塔面板为例的安装视频与图文教程涵盖PHP7.0以上环境、fileinfo扩展、伪静态规则配置等关键环节能帮助读者快速完成建站、数据库创建与源码部署。目前已有699人学习适合想低成本搭建私有云盘、掌握网盘系统部署与排错思路的读者参考。1. 从一套 Cloudreve 云盘源码说起为什么自建私有网盘比你想的更划算很多人第一次接触 Cloudreve是在找「私人云盘源码」的时候。市面上的网盘限速、限容量、动不动弹广告团队内部传几个 G 的设计稿还得开会员于是「自己搭一个」成了顺理成章的念头。Cloudreve 就是这类需求里被搜得最多的方案之一一套用 Go 写的开源云网盘系统支持本地存储、对象存储、WebDAV、多用户、分享链接和离线下载前端界面简洁部署起来对新手也友好。标题里说的「带搭建教程」「安装视频教程」本质就是把这套源码从压缩包变成能访问的站点这一整套流程。这篇笔记不吹它多强而是把「拿到源码之后到底怎么落地」讲清楚环境怎么选、数据库怎么配、伪静态怎么写、文件共享传输怎么调、哪些参数一改就翻车。适合想给团队或自己搭一套私有云盘、又不想被平台规则绑住的人。2. 部署前的选型与准备Cloudreve 跑在什么环境上最省心2.1 云主机系统怎么选别一上来就踩坑Cloudreve 是 Go 编译出来的单文件程序理论上 Linux、Windows 都能跑但真正省心的组合是 Linux 宝塔面板 MySQL Nginx。搜「云主机用什么系统」的人很多我的建议很直接Ubuntu 22.04 或 Debian 12别用 CentOS 7 那种已经停止维护的老系统后面装依赖会各种报错。如果你习惯图形化操作宝塔服务器搭建这套流程确实能省掉大量命令行但要注意宝塔本身也吃内存1 核 1G 的机器跑起来会紧张建议至少 2 核 2G 起步。选云主机时另一个高频问题是「高防云主机」要不要上。私有云盘如果只给内部用普通云主机足够如果打算开放分享链接给外部被刷流量是常事这时候带宽和防护才值得考虑。至于「国外好用 vps」这类词落到实操上就是看线路延迟和磁盘 IO网盘最吃的是磁盘读写和上行带宽CPU 反而次要。准备清单我一般这么列项目推荐配置说明操作系统Ubuntu 22.04 / Debian 12依赖好装社区资料多内存2G 起宝塔 MySQL 会占不少磁盘按数据量算建议 SSD网盘读写频繁数据库MySQL 5.7 / 8.0Cloudreve 官方支持Web 服务Nginx伪静态和反代都靠它运行环境无需 PHPGo 程序别被旧教程误导提示网上有些老教程会让你装 PHP 环境Cloudreve 从 3.x 开始是 Go 写的不需要 PHP照着装只会白白占资源。2.2 拿到源码后先做什么目录规划与依赖确认源码到手别急着解压到网站根目录。我习惯先在服务器上建一个独立目录比如/www/wwwroot/cloudreve把程序放进去再单独规划一个数据目录/www/cloudreve-data用来存上传的文件。这样以后升级程序时只替换程序目录用户数据不受影响这是血泪经验——把数据和程序混在一起升级一次就得全量备份。确认依赖这一步很多人跳过结果运行时报GLIBC版本不够。先在服务器上跑一遍# 查看系统架构和 glibc 版本确认能跑官方编译的二进制 uname -m ldd --version | head -n 1 # 建好程序目录和数据目录 mkdir -p /www/wwwroot/cloudreve mkdir -p /www/cloudreve-datauname -m输出x86_64就下 amd64 版本输出aarch64就下 arm64 版本下错了直接报「无法执行二进制文件」。ldd --version看 glibc低于 2.28 的老系统建议换系统而不是硬凑。数据目录单独建是为了后面在 Cloudreve 后台把存储策略指过去迁移和扩容都方便。3. 从源码到能访问Cloudreve 搭建教程的完整命令链路3.1 上传程序并赋予执行权限把下载好的 Cloudreve 压缩包传到/www/wwwroot/cloudreve解压后你会看到一个主程序文件。不同版本命名略有差异常见是cloudreve。解压和赋权命令如下cd /www/wwwroot/cloudreve # 解压源码包具体文件名以你拿到的为准 tar -zxvf cloudreve_*.tar.gz # 给主程序加执行权限否则会提示 Permission denied chmod x cloudreve # 首次运行让它生成配置文件和初始管理员账号 ./cloudreve第一次运行会打印一段初始化信息包含默认管理员邮箱和随机密码务必当场记下来关掉终端就找不回了。程序默认监听5212端口此时用http://服务器IP:5212就能看到登录页。这一步能跑通说明二进制和系统兼容没问题后面所有问题基本都出在 Nginx 和数据库上。3.2 配置 MySQL 数据库并写入配置文件Cloudreve 默认用 SQLite小规模够用但多用户和并发一上来就吃力所以正式部署我建议直接上 MySQL。先在宝塔或命令行里建库建用户-- 建一个专用数据库字符集用 utf8mb4 支持 emoji 文件名 CREATE DATABASE cloudreve DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- 建专用账号别用 root密码换成你自己的强密码 CREATE USER cloudrevelocalhost IDENTIFIED BY YourStrongPass123!; GRANT ALL PRIVILEGES ON cloudreve.* TO cloudrevelocalhost; FLUSH PRIVILEGES;建完库编辑程序目录下的conf.ini把数据库类型改成 mysql填入刚才的库名、账号、密码。改完重启程序它会自动建表。这里有个容易翻车的点密码里带#、;这类字符写在 ini 里会被当成注释截断导致连接失败密码尽量用字母数字加下划线组合。3.3 Nginx 反向代理与伪静态配置直接暴露 5212 端口既不安全也不好看标准做法是用 Nginx 反代到 80/443。在宝塔里新建站点然后改站点配置server { listen 80; server_name pan.yourdomain.com; # 上传大文件必须放开否则大文件传到一半断掉 client_max_body_size 2048m; location / { proxy_pass http://127.0.0.1:5212; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 这几个是网盘长连接和分片上传的关键别省 proxy_read_timeout 3600s; proxy_send_timeout 3600s; proxy_buffering off; } }client_max_body_size是新手最容易忽略的参数默认 1M传个大文件直接 413。proxy_read_timeout和proxy_send_timeout调到 3600 秒是因为网盘上传下载都是长连接默认 60 秒会在传大文件时莫名中断。proxy_buffering off让数据流式转发减少内存占用。改完nginx -t测试语法再 reload。3.4 文件共享传输的关键参数怎么调标题里专门提到「文件共享传输」这块在 Cloudreve 后台的「存储策略」里配。本地存储就指向前面建的/www/cloudreve-data如果要用对象存储填对应的 Endpoint、Bucket、AccessKey。分享链接的有效期、下载限速、是否允许预览都在「分享设置」里。我一般会把分享默认有效期设成 7 天避免链接长期外泄下载限速按带宽的 70% 设留点余量给正常访问。上传分片大小默认 25M网络差的环境可以调到 10M减少单片失败重传的代价。4. 避坑与排查Cloudreve 部署最常见的 5 个翻车现场4.1 现象访问域名显示 502 Bad Gateway原因通常是后端程序没起来或者端口对不上。先ps -ef | grep cloudreve看进程在不在不在就手动前台跑一次看报错。如果进程在检查conf.ini里的监听端口是不是 5212和 Nginx 里proxy_pass写的是否一致。还有一种情况是程序崩了但宝塔的守护没拉起来建议用 systemd 或宝塔的「进程守护」把它托管别靠手动nohup。4.2 现象上传大文件到 99% 失败这是最经典的坑。原因有三层Nginx 的client_max_body_size太小、proxy_read_timeout太短、PHP 无关但宝塔面板本身可能还有一层限制。解决顺序是先改 Nginx 配置再检查宝塔「网站设置」里有没有单独的上传限制最后确认磁盘剩余空间。三层都排查完99% 失败基本消失。4.3 现象数据库连接报错程序起不来先看conf.ini里密码有没有特殊字符被截断这是最高频原因。其次确认 MySQL 用户权限是不是只给了localhost而程序连的是127.0.0.1两者在 MySQL 里算不同来源。最后看 MySQL 版本8.0 默认认证插件变了老版本 Cloudreve 可能连不上需要在建用户时指定mysql_native_password。4.4 现象分享链接打开是空白或 404多半是伪静态没配好或者站点根目录指错了。Cloudreve 的前端路由需要 Nginx 把非静态请求都转发给后端检查location /有没有正确proxy_pass。另外确认域名解析生效用curl -I http://127.0.0.1:5212直接测后端能通说明问题在 Nginx 层。4.5 现象升级后用户数据不见了这是把程序目录和数据目录混在一起的后果。升级时如果直接覆盖整个目录上传的文件和数据库配置可能被冲掉。正确做法是升级前备份conf.ini和数据库数据目录单独存放升级只替换主程序二进制。养成这个习惯升级就不再是玄学。5. 进阶技巧让 Cloudreve 跑得更稳的几个实操习惯5.1 用 systemd 托管告别手动启动手动./cloudreve一关终端就断用 systemd 托管才是长期方案。写一个 service 文件[Unit] DescriptionCloudreve Afternetwork.target mysql.service [Service] Userwww WorkingDirectory/www/wwwroot/cloudreve ExecStart/www/wwwroot/cloudreve/cloudreve Restartalways RestartSec5 [Install] WantedBymulti-user.targetRestartalways保证程序崩溃后自动拉起RestartSec5避免频繁重启。写完systemctl daemon-reload再systemctl enable --now cloudreve之后开机自启、崩溃自愈都交给系统。5.2 定期备份要备哪三样我一般只备三样数据库、conf.ini、数据目录。数据库用mysqldump定时导出conf.ini里存着存储策略和密钥数据目录是用户文件本体。三者分开备份恢复时按顺序还原基本不会丢东西。备份脚本挂到 crontab每天凌晨跑一次保留最近 7 天。5.3 验证部署是否真的稳别只看首页能打开就完事。我会做三个验证传一个大于 1G 的文件看是否完整、生成一个分享链接用手机流量下载、重启服务器后确认程序自动起来且数据还在。这三步过了才算真正搭好。Cloudreve 这套源码的价值不在于它多花哨而在于你完全掌控数据和规则。我自己踩过最深的坑就是一开始图省事全塞一个目录结果升级翻车重装了一遍。把目录分清楚、参数调对、备份做足这套私有云盘能安安稳稳跑很久。希望帮到你。本文还有配套的精品资源点击获取