cloudreve搭建过程

本文最后更新于 2023年9月22日。

最近折腾nextcloud了,但是在我搭建好LNMP环境下安装总是不能完全正常工作。搜索解决办法也无效。所以还是打算再搭建一个cloudreve。
之前用过cloudreve,这个网盘无论搭建还是使用都很简单,界面也很清爽。
![[Pasted image 20221020183935.png]]
以前是直接运行应用程序,然后配置一下就可以了。
这一次打算用docker配置,这样会更方便管理且容易扩展。
下面记录了我的搭建过程。

  1. 创建目录结构
    这一步的目的是为了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
  1. 新建docker-compose文件
  2. 在当前文件夹下新建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
  1. 运行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
  1. 开放端口
    在上面yml文件配置中,我们已经将docker中的5212和443端口映射出来了。
    同时还有开放主机的防火墙端口。
    我用的阿里云,在服务器管理页面的防火墙中添加5212端口,设置方法如下:
    ![[Pasted image 20221020191141.png]]
  2. 开始使用
    如果docker没有问题,在浏览器输入<ip地址>:5212就可以访问了。会出现如下登陆界面。
    ![[Pasted image 20221019101640.png]]
    使用我们上面记录的初始用户名和密码即可登录。
    到这里如果没有报错的已经可以使用了。
  3. 增加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