Cloudreve 是一款基于 ThinkPHP 构建的网盘系统,由“树洞外链”的作者开发,能够助您以较低成本快速搭建起公私兼备的网盘,并且还有能快速对接目前各家常用云储存等多项特性。
此镜像目前仍然处于开发中的阶段,不建议大量用在生产环境中!
如果有任何符合如下状况的问题:
- 确认正确填写启动命令行的前提下,镜像启动过程报错或者执行命令后,超过10分钟依然没有完成部署;
- 经过检查,确认我写的代码存在致命BUG (主要是
Dockerfile
和entrypoint.sh
); - 部署完成后,访问网盘地址,得到错误提示
请在此文章下留言,或者E-mail到:
ilemonrain@ilemonrain.com
,并请附带详细的错误信息,接受以下几种形式的信息:- “docker logs [容器ID]” 返回结果;
- 访问网盘得到的错误信息 (请打开
Application/config.php
中 debug 开关,以获得详细出错原因)
不接受以下反馈以及E-mail来信:
- 如何部署(我在 Docker Hub 上写的还不够详细么?不够?我再写点如何?)
- 为什么部署这么慢(自己找原因,服务器性能不够/服务器网络差/国内服务器/填写错误的参数)
- 什么时候更新/能不能更新XX功能(随缘,我想写就写点,不想写就咕咕咕,sorry,有技术真的是为所欲为)
镜像说明
此镜像基于
ilemonrain/lamp
作为母镜像,进行了修改以适配 Cloudreve 的环境要求(但我知道有些地方还是没优化到位……)。
到目前为止,此镜像已经集成:
- 一套LAMP环境,包括:
- L:Alpine Linux 3.7.0
- A:Apache 2.4.29
- M:MariaDB 10.1.28
- P:PHP 7.1.15
- Cloudreve (使用 Composer+Git 同步官网最新版本)
- Google 2FA 组件 (用于支持 Google 两步验证)
- 启动过程中的日志追踪功能 (
docker run -t
或者docker logs
)
计划中 (也可能鸽掉不做) 的功能:
- Apache 2 SSL支持 (目前正在做)
- Let's Encrypt 支持 (用于部署时自动申请SSL证书)
- Sendfile 下载支持 (Apache2 的扩展,用于减轻服务器下载压力)
- 一些 Apache2/PHP7/MariaDB 的性能优化
- 目前完全是一时冲动(什么鬼)写出来的镜像,所以以后可能会坑掉不写,如果有什么好的建议或者紧急BUG提交,请 Email 到:
ilemonrain@ilemonrain.com
,谢谢你们的支持!
部署教程
由于 Docker 的特殊性(虚拟化要求),此教程不适用于 OpenVZ vps!
1. 检测你的服务器虚拟化类型!
如何检测自己的服务器虚拟化类型:
- CentOS/Fedora:
- Ubuntu/Debian:
返回以下结果,请继续往下阅读教程:
返回以下结果,说明此教程不适合你的服务器:
2. 安装Docker环境
首先,在你的服务器上,执行以下命令,安装 Docker 环境并设为开机自启动:
- CentOS/Fedora:
- Ubuntu/Debian:
之后,运行命令:
来确定你的Docker是否成功启动。如果返回关于你的Docker的相关信息,就像这样:
如果返回以下信息,则说明你的 Docker 没有正确启动:
一个我常遇到的问题:selinux 权限限制。
遇到这种情况,请执行命令:
然后再尝试重新启动 Docker 进程,很多时候都会奏效。
3. 下载Docker镜像到本地
执行以下命令,将 Docker 镜像从 Docker Hub 上拉回本地:
拉取镜像的速度取决于你服务器的国际出口速度。
一般情况下,美帝的服务器基本上就是秒速拉回来,国内的服务器往往非常慢。
请参考这里 如何为国内服务器加速 Docker Hub 镜像拉取:
等待拉取结束后,继续部署过程。
4. 启动Docker镜像
启动命令格式如下:
启动命令行说明:
-d/-t:决定是以后台运行模式启动或是前台监控模式启动。
- 使用
-d
参数启动,镜像将不会输出任何日志到你的Console,直接以 Daemon 模式启动。Deamon 模式启动下,可以使用docker logs docker-cloudreve
命令显示启动日志。 - 使用
-t
参数启动,将会直接 Attach 你的镜像到你的 Console,这个模式启动下,你可以直观的看到镜像的启动过程,适合于初次部署镜像,以及镜像 Debug部署使用。你可以使用 Ctrl+C 将 Docker 镜像转入后台运行,使用 docker logs docker-cloudreve 命令显示启动日志。
-p 80:80:暴露你的 Docker 容器内部的 80 端口,到你容器外部的 80 端口。目前由于开发状态原因,不建议修改此端口。
-e CLOUDREVE_URL="[Cloudreve URL]":Cloudreve 绑定的地址,此参数务必严格填写,不能丢掉 http/https 前缀和结尾的斜杠!
- 以下的地址是正确的:
- 以下的地址是错误的:
- 将会在后期版本中加入对 HTTPS 的支持,目前请使用 http 进行部署!没有域名的话,可以换成IP!
-v /cloudreve:/cloudreve:将Docker容器中的
/cloudreve
目录,映射到宿主机的/cloudreve目录
,冒号前面的是映射路径,冒号后的为容器中路径 (强烈建议进行映射,以确保容器中数据的安全,避免在容器意外崩溃时导致数据丢失)
容器中可以映射的路径:
/cloudreve
: Cloudreve 程序目录以及网盘文件目录/var/lib/mysql
: MariaDB (MySQL)数据库文件目录
--name docker-cloudreve:Docker容器的名称,可以自行修改
ilemonrain/cloudreve:启动的Docker镜像名称,请不要修改!
5. 启动过程
根据我目前设置的
entrypoint.sh
,目前的启动过程如下:- 通过命令行,启动 Docker 容器
- 【开发中】Apache2 初始化
- MariaDB (MySQL) 初始化
- 安装Cloudreve (通过
php composer
) - 安装 Google 2FA 验证器插件 (通过
php composer
) - 安装 用于Google 2FA 验证器的二维码插件 (通过
php composer
) - 输出容器相关的信息
- 以前台模式启动 Apache2
6. 常见问题 Q&A
- Q:Docker安装和启动感觉好吃力,这正常吗?
A:Docker安装过程中会涉及到selinux的部署,在安装过程中如果卡在container-selinux,请耐心等待(30秒~1分钟) - Q:镜像启动好慢啊……
A:本身在镜像启动时就要涉及到很多的过程(参考2.5 启动过程章节),尤其是在线安装Cloudreve,更加浪费时间,请耐心等待!如果等不及可以尝试调取启动日志,看看卡在了哪里! - Q:Docker Cloudreve运行起来后,为什么占了这么多内存啊
A:这个镜像本身就是个LAMP环境,尤其是吃内存大户的MySQL,你说占用能少么?
---------------------------------------------------------------
支持多家云存储的云盘系统 (A project helps you build your own cloud in minutes) https://cloudreve.org
Cloudreve - Make the cloud easy for everyone
使用ThinkPHP + React + Redux + Material-UI构建的网盘系统,能够助您以较低成本快速搭建起公私兼备的网盘。
目前已经实现的特性:
- 快速对接多家云存储,支持七牛、又拍云、阿里云OSS、AWS S3、Onedrive、自建远程服务器,当然,还有本地存储
- 可限制单文件最大大小、MIMEType、文件后缀、用户可用容量
- 自定义主题配色
- 基于Aria2的离线下载
- 图片、音频、视频、文本、Markdown、Ofiice文档 在线预览
- 移动端全站响应式布局
- 文件、目录分享系统,可创建私有分享或公开分享链接
- 用户个人主页,可查看用户所有分享
- 多用户系统、用户组支持
- 初步完善的后台,方便管理
- 拖拽上传、分片上传、断点续传、下载限速(*实验性功能)
- 多上传策略,可为不同用户组分配不同策略
- 用户组基础权限设置、二步验证
- WebDAV协议支持
安装需求
- LNMP/AMP With PHP5.6+
- curl、fileinfo、gd扩展
- Composer
简要安装说明
1.使用Composer安装主程序
#安装开发版
$ composer create-project hfo4/cloudreve:dev-master
#等待安装依赖库后,会自动执行安装脚本,按照提示输入数据库账户信息
___ _ _
/ __\ | ___ _ _ __| |_ __ _____ _____
/ / | |/ _ \| | | |/ _` | '__/ _ \ \ / / _ \
/ /___| | (_) | |_| | (_| | | | __/\ V / __/
\____/|_|\___/ \__,_|\__,_|_| \___| \_/ \___|
Ver XX
================================================
#按提示输入信息
......
#出现如下提示表示安装完成
Congratulations! Cloudreve has been installed successfully.
Here's some informatioin about yor Cloudreve:
Homepage: https://pan.cloudreve.org/
Admin Panel: https://pan.cloudreve.org/Admin
Default username: admin@cloudreve.org
Default password: admin
2.目录权限
runtime
目录需要写入权限,如果你使用本地存储,public
目录也需要有写入权限3.URL重写
对于Apache服务器,项目目录下的
.htaccess
已经配置好重写规则,如有需求酌情修改. 对于Nginx服务器,以下是一个可供参考的配置:location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
4.完成
后台地址:
http://您的域名/Admin
初始用户名:admin@cloudreve.org
初始密码:admin
后续操作
以下操作不是必须的,但仍推荐你完成这些操作:
- 修改初始账户密码
- 到 设置-基础设置 中更改站点URL,如果不更改,程序无法正常接受回调请求
- 添加Crontab定时任务 :你的域名/Cron
- 如果你打算使用本地上传策略并且不准备开启外链功能,请将·public/uploads·目录设置为禁止外部访问
- 如需启用二步验证功能,请依次执行
composer require phpgangsta/googleauthenticator:dev-master
composer require endroid/qr-code
安装二步验证支持库
文档
(开源网盘储存系统Cloudreve
Cloudreve是国人开发的开源网盘储存系统,基于ThinkPHP + React + Redux + Material-UI构建,可快速搭建起公私兼备的网盘。Cloudreve遵守GPL 3.0开源协议。安装环境需要LNMP/AMP With PHP5.6+, curl、fileinfo、gd扩展, Composer。
[repo owner=”cloudreve” name=”Cloudreve”] )
Cloudreve是国人开发的开源网盘储存系统,基于ThinkPHP + React + Redux + Material-UI构建,可快速搭建起公私兼备的网盘。Cloudreve遵守GPL 3.0开源协议。安装环境需要LNMP/AMP With PHP5.6+, curl、fileinfo、gd扩展, Composer。
[repo owner=”cloudreve” name=”Cloudreve”] )