本文最后更新于 2023年9月22日。
最近折腾nextcloud了,但是在我搭建好LNMP环境下安装总是不能完全正常工作。搜索解决办法也无效。所以还是打算再搭建一个cloudreve。
之前用过cloudreve,这个网盘无论搭建还是使用都很简单,界面也很清爽。
![[Pasted image 20221020183935.png]]
以前是直接运行应用程序,然后配置一下就可以了。
这一次打算用docker配置,这样会更方便管理且容易扩展。
下面记录了我的搭建过程。
- 创建目录结构
这一步的目的是为了docker数据的持久化以及配置等文件的放置设置。
首先进入你想要放置cloudreve的文件夹,运行以下命令:
mkdir -vp cloudreve/{uploads,avatar} \
&& touch cloudreve/conf.ini \
&& touch cloudreve/cloudreve.db \
&& mkdir -p aria2/config \
&& mkdir -p data/aria2 \
&& chmod -R 777 data/aria2
- 新建docker-compose文件
- 在当前文件夹下新建docker-compose.yml文件,写入以下内容。
yml文件内容:
version: "3.8"
services:
cloudreve:
container_name: cloudreve
image: cloudreve/cloudreve:latest
restart: unless-stopped
ports:
- "5212:5212"
- "443:443"
volumes:
- temp_data:/data
# - ./cloudreve:/cloudreve # 221018 add ,error
- ./cloudreve/uploads:/cloudreve/uploads
- ./cloudreve/conf.ini:/cloudreve/conf.ini
- ./cloudreve/cloudreve.db:/cloudreve/cloudreve.db
- ./cloudreve/avatar:/cloudreve/avatar
depends_on:
- aria2
aria2:
container_name: aria2
image: p3terx/aria2-pro
restart: unless-stopped
environment:
- RPC_SECRET=your_aria_rpc_token
- RPC_PORT=6800
volumes:
- ./aria2/config:/config
- temp_data:/data
volumes:
temp_data:
driver: local
driver_opts:
type: none
device: $PWD/data
o: bind
- 运行docker-compose
运行docker-compose有两种方式如下:
# 后台运行模式,可以从 docker/docker-compose 的日志中获取默认管理员账户用户名和密码
docker-compose up -d
# 或者,直接运行,log 将会直接输出在当前控制台中,请注意退出之后保持当前容器运行
docker-compose up
第二种方式可以看到实时日志,使用<ctrl+z>可以让docker进入后台运行。
cloudreve的部分日志如下:
cloudreve | ___ _ _
cloudreve | / __\ | ___ _ _ __| |_ __ _____ _____
cloudreve | / / | |/ _ \| | | |/ _ | '__/ _ \ \ / / _ \
cloudreve | / /___| | (_) | |_| | (_| | | | __/\ V / __/
cloudreve | \____/|_|\___/ \__,_|\__,_|_| \___| \_/ \___|
cloudreve |
cloudreve | V3.5.3 Commit #a11f819 Pro=false
cloudreve | ================================================
cloudreve |
cloudreve | [Info] 2022-10-19 11:26:30 初始化数据库连接
cloudreve | [Info] 2022-10-19 11:26:30 开始进行数据库初始化...
aria2 | [cont-init.d] 88-done: exited 0.
cloudreve | [Info] 2022-10-19 11:26:30 初始管理员账号:admin@cloudreve.org
cloudreve | [Info] 2022-10-19 11:26:30 初始管理员密码:7Lh8jUvs
aria2 | [cont-init.d] done.
aria2 | [services.d] starting services
cloudreve | [Info] 2022-10-19 11:26:31 开始执行数据库脚本 [UpgradeTo3.4.0]
aria2 | [services.d] done.
cloudreve | [Info] 2022-10-19 11:26:31 数据库初始化结束
aria2 |
aria2 | 10/19 11:26:29 [NOTICE] IPv4 RPC: listening on TCP port 6800
cloudreve | [Info] 2022-10-19 11:26:31 初始化任务队列,WorkerNum = 10
cloudreve | [Info] 2022-10-19 11:26:31 初始化定时任务...
aria2 |
aria2 |
aria2 | 10/19 11:26:30 [NOTICE] Serialized session to '/config/aria2.session' successfully.
cloudreve | [Info] 2022-10-19 11:26:31 当前运行模式:Master
cloudreve | [Info] 2022-10-19 11:26:31 开始监听 :5212
在日志中可以找到初始用户名和密码,这个密码只出现一次,并且每次不同。记录下来:
cloudreve | [Info] 2022-10-19 11:26:30 初始管理员账号:admin@cloudreve.org
cloudreve | [Info] 2022-10-19 11:26:30 初始管理员密码:7Lh8jUvs
- 开放端口
在上面yml文件配置中,我们已经将docker中的5212和443端口映射出来了。
同时还有开放主机的防火墙端口。
我用的阿里云,在服务器管理页面的防火墙中添加5212端口,设置方法如下:
![[Pasted image 20221020191141.png]] - 开始使用
如果docker没有问题,在浏览器输入<ip地址>:5212就可以访问了。会出现如下登陆界面。
![[Pasted image 20221019101640.png]]
使用我们上面记录的初始用户名和密码即可登录。
到这里如果没有报错的已经可以使用了。 - 增加SSL使用https访问
到上面已经可以使用cloudreve的功能了,如果想用https访问需要准备好域名证书,修改配置文件conf.ini
如下:
[System]
; 运行模式
Mode = master
; 监听端口
Listen = :5212
; 是否开启 Debug
Debug = false
; Session 密钥, 一般在首次启动时自动生成
SessionSecret = 23333
; Hash 加盐, 一般在首次启动时自动生成
HashIDSalt = something really hard to guss
; SSL 相关
[SSL]
; SSL 监听端口
Listen = :443
; 证书路径
CertPath = 证书名字.pem
; 私钥路径
KeyPath = 证书名字.key
这样可以用https://你的域名访问了。
8. 可能遇到的问题
Cloudreve 在首次启动时,会创建初始管理员账号,请注意保管管理员密码,此密码只会在首次启动时出现。 如果您忘记初始管理员密码,需要删除同级目录下的 cloudreve.db ,重新启动主程序以初始化新的管理员账户。
Cloudreve 默认会监听 5212 端口。 你可以在浏览器中访问http://服务器IP:5212 进入Cloudreve。
如果docker-compose不能正常pull镜像,参考这篇文章https://zhuanlan.zhihu.com/p/568622435