阿星的博客

Posted by:
lujiaxing

该同志还没添加个人介绍

250

部署 Cloudreve 个人云盘程序简易步骤

Cloudreve 是一款开源的 WEB 个人云存储系统. 使用 GO 语言开发. 支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive (包括世纪互联版) 作为存储介质. 且支持 Aria2 离线下载. 本篇文章将介绍 Linux 下 Cloudreve 的简易部署流程.


下载

Cloudreve 的 github 主页是 https://github.com/cloudreve/Cloudreve 截止发稿时间为止, 最新版本为 3.0 版. 我们在 github 主页的 "releases" 页下载最新版本即可. Cloudreve 提供多种不同架构的程序. 你需要明确你目标部署设备 CPU 的架构 以及操作系统使用的架构. 不同架构之间可能是不兼容的. 下面我会列出一些常用设备所使用的 CPU 和操作系统架构, 请参照着下载.

设备CPU操作系统架构默认支持
树莓派3BBroadcom BCM2837Raspbianarmhf
树莓派3BBroadcom BCM2837Ubuntuarm64
树莓派4BBroadcom BCM2711Raspbianarmhf
树莓派4BBroadcom BCM2711Ubuntuarm64
斐讯N1盒子Amlogic S905DArmbianarm64
斐讯N1盒子Amlogic S905DAndroidarm64
台式/笔记本电脑(Any)Windows / Linuxx64
台式/笔记本电脑(Any)Windows / Linuxx86
苹果电脑(Any)MacOSx64
树莓派2BBroadcom BCM2836Raspbianarmhf
NETGEAR R6220 RouterMediaTek MT7621OpenWRTmipsel
Asus RT-AC66U-B1 Router Broadcom BCM4708C0Linuxarm32

注意, amd64 = x64 = x86_64, arm64 = aarch64.

还有, AMD64 不是 ARM64. 这俩不是一码事儿!

官方编译版支持的 CPU 架构其实不多. 但是其他的也可以通过自行编译予以支持. 这里暂不展开讨论.

确定自己设备 CPU 和操作系统架构后, 在 "Assets" 列表中按文件名后半部分对照自己设备 CPU 和操作系统的名字以及架构下载即可.

比如我的设备是 树莓派4B. 安装的是 Ubuntu 19. 树莓派4B使用的是 BCM2711, ARM64 架构, 上面运行的 Ubuntu 19 也是 ARM64 的, 那么我需要下载的就应该是 "cloudreve_3.0.0_linux_arm64.tar.gz"

如果还是不清楚, 建议在目标设备 Terminal 中输入 "uname -si" 看输出了什么内容. 可以以此判断自己设备 CPU 和操作系统所使用的架构.

输出的是 "Linux x86_64". 那么就应该下载 "cloudreve_3.0.0_linux_amd64.tar.gz"

由于 Github 内容托管所用的 Amazon S3 节点离我们普遍都比较远, 因此在 Github 上下载内容速度普遍比较慢. 请耐心等待. 下载完成后, 可以把压缩包中的内容 (就一个文件) 解压缩出来并传输到目标设备上 (通过 SFTP, FTP, SCP 或者 U盘 等等), 通过终端连接到目标设备, 并跳转到存放 cloudreve 主程序的文件夹. Linux 下跳转目录的命令是:

cd 你的目标目录

比如我 cloudreve 程序安装在了 /mnt/app/cloudreve-v3 目录下, 那么我切换到 cloudreve 的命令就是:

cd /mnt/app/cloudreve-v3

切换到目标目录之后, 我们可以通过 ls 命令查看当前目录中的文件.

在这个示例中, 我存放 cloudreve 主程序的地方在 "/mnt/app/cloudreve-v3".

不用皱眉头, 眼睛也不用瞪那么大. 就这个叫 cloudreve 的文件, 它就是 Cloudreve 的本体. 没有其他的了. 不要觉得自己什么东西没拷贝齐, 真的就这么一个文件!!!


启动

这时候 cloudreve 还是不能执行的. 因为此文件并没有可执行文件的权限. 此时还需要执行命令:

sudo chmod +x ./cloudreve 

等以上步骤都完成之后, 直接输入命令

./cloudreve

就可以启动 cloudreve 的主程序了.

如果提示的是 "-sh: ./cloudreve: not found", 或者 "-sh: ./cloudreve: cannot execute binary file: Exec format error" 说明程序与你目标设备的运行架构不符. 看好了重新下载.

如果能够成功运行, 应该会显示如下画面:

到这里其实你已经初步成功了. 可以开瓶可乐庆贺一下了. 直接访问

http://[目标设备IP或者域名]:5212/ 应该就可以访问了.

注意: 这里的密码是随机的密码, 只会显示一次. 当你再次启动 Cloudreve 的时候, 密码就不会再显示了. 所以登陆之后, 切记在 Cloudreve 的管理面板里修改登录名和密码或另建管理员用户!!! 否则管理员密码忘记就只能删除主程序目录下的 cloudreve.db 跟 conf.ini 来重建管理员账户了!

已经可以正常打开登录界面了.
文件上传功能正常

服务化

但这时候还没有结束. 你是在控制台命令行中启动的 Cloudreve. 这时候它会一直占着你的 Session. 如果你按 Ctrl+C 或者关闭 Terminal, Cloudreve 进程都会自动结束的.

这时候我们需要做的, 就是将 Cloudreve 作为服务启动.

Linux 下创建服务的方式, 一般来说就是在 /lib/systemd/system 下创建一个 .service 文件. 我们在 Terminal 中输入命令

cd /lib/systemd/system

跳转到目标文件夹. 然后输入以下命令创建一个叫做 "cloudreve.service" 的文件

cat >/usr/lib/systemd/system/cloudreve.service <<EOF
[Unit]
Description=Cloudreve
After=network.target
Wants=network.target

[Service]
ExecStart=/你/安装 cloudreve 的/目录/的完整路径/cloudreve
ExecStop=/bin/kill -term $MAINPID
RestartSec=5s
Restart=on-failure
User=root

[Install]
WantedBy=multi-user.target
EOF

(这里的 "ExecStart=" 后面要写你 Cloudreve 的完整安装路径. 不要照抄!)

然后执行以下命令:

sudo systemctl daemon-reload

sudo systemctl enable cloudreve

以及这条命令:

sudo systemctl start cloudreve

这三条命令分别表示: 重新加载守护进程清单, 让 cloudreve 服务开机自启. 以及正式启动 cloudreve 服务.

这样, 每次当你重启服务器之后, cloudreve 就会自动启动了. 你关闭会话也不会导致 cloudreve 自动关闭了.

如果你发现 Cloudreve 无法访问的时候, 你可以使用如下命令看一下 Cloudreve 的服务是否正常:

service cloudreve status

如果 Active 项目显示绿色的 "active (running)" 就证明服务已经在正常运行了. 如果不是, 那证明 Cloudreve 没有运行. 可能是报错了或者怎么样的. 这时候你可以直接去 Cloudreve 主程序所在目录, 像最初启动 Cloudreve 的方式一样, 在 Terminal 中直接输入

./cloudreve

看看输出了什么. 一般这个时候, cloudreve 都会把无法启动的原因打印在屏幕上. 照着解决就是了.


基本配置

现在我们再切回到 Cloudreve 的所在目录, 会发现除了 cloudreve 以外还多出了三个文件和文件夹. 分别是 avatar, conf.ini, files.

这其中, avatar 目录存放的是用户的头像, files 文件夹则是用来存放用户上传的文件. 而 conf.ini 就是配置文件了. 配置可以修改什么呢? 可以设置数据库产品, 切换 SQLite 或者使用 MySQL, 可以修改默认端口, 可以指定 redis 服务等等.... 那我们现在就尝试一下修改默认的访问端口吧, 让我们不用每次打开 Cloudreve 的时候都要输入端口号.

先使用 cat 命令打开 conf.ini 输出一下:

cat conf.ini

可以看到整个文件中就 5 行内容. 第一行 [System] 是段落开头不用理会, 第二行是运行模式. 第三行是监听的端口. 第四第五行的内容不重要.

如果你想要让你的 Cloudreve 不需要端口就能访问, 请将 Listen = :5212 改为 Listen = :80. 切记 冒号跟等号之间, 以及 等号跟前面单词之间 都是有空格的! 切记! 具体修改方法:

执行以下脚本:

cat >./conf.ini <<EOF
[System]
Mode = master
Listen = :80
SessionSecret = 这里你随便写点什么都可以,反正就是个随机字符串
HashIDSalt = 这里你也可以随便写点什么,反正就是个随机字符串
EOF

执行之后, 执行以下命令重启 cloudreve 服务:

sudo systemctl restart cloudreve

这时候我们就可以用默认的 80 端口来访问 cloudreve 服务了.

至此, Cloudreve 基本的部署过程结束.

版权申明

若文中未注明,则本文由 lujiaxing 原创,转载请注明出处。

分享

发表评论

back up ↑