一、更新系统软件包:

sudo apt update
sudo apt upgrade -y

二、下载安装cloudreve

首先去 https://github.com/cloudreve/Cloudreve/releases/ 下载最新的版本

sudo mkdir -p /opt/cloudreve
cd /opt/cloudreve
sudo tar -zxvf cloudreve_4.3.0_linux_amd64.tar.gz

创建一个专门的用户来运行 Cloudreve,并设置相应的权限

sudo adduser --system --no-create-home --group cloudreve
sudo chown -R cloudreve:cloudreve /opt/cloudreve
sudo chmod +x /opt/cloudreve/cloudreve

三、配置 Cloudreve

sudo mkdir -p /etc/cloudreve

创建 /etc/cloudreve/conf.ini 输入:

[System]
Listen = :5212
# Cloudreve 监听的端口,Nginx 将反向代理到此端口
Mode = master
Debug = false

[Database]
Type = sqlite3
# 默认使用 SQLite 数据库
DBFile = /opt/cloudreve/cloudreve.db
# SQLite 数据库文件路径,放在数据目录中

[Logger]
Enable = true
Path = /var/log/cloudreve/
# 日志文件存放路径
Name = cloudreve.log
sudo mkdir -p /var/log/cloudreve
sudo chown -R cloudreve:cloudreve /var/log/cloudreve

四、创建 Systemd 服务并启动 Cloudreve

创建 /etc/systemd/system/cloudreve.service 输入:

[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target

[Service]
WorkingDirectory=/opt/cloudreve/
# Cloudreve 可执行文件所在的目录
ExecStart=/opt/cloudreve/cloudreve -c /etc/cloudreve/conf.ini
# 指定配置文件路径
User=cloudreve
# 使用之前创建的 cloudreve 用户运行
Group=cloudreve
# 使用之前创建的 cloudreve 组
Restart=on-abnormal
RestartSec=5s
KillMode=mixed
StandardOutput=null
# 将标准输出重定向到空设备
StandardError=syslog
# 将标准错误输出发送到系统日志

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable cloudreve
sudo systemctl start cloudreve
sudo systemctl status cloudreve

五、配置 Nginx 反向代理

先去域名控制台添加一条 A 记录到服务器ip

创建 /etc/nginx/sites-available/cloud.diraw.top.conf 输入:

server {
server_name cloud.diraw.top; # 这里填写域名,例如 cloud.yourmainwebsite.com

location / {
proxy_pass http://127.0.0.1:5212; # Cloudreve 监听的本地地址和端口
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;

client_max_body_size 0;
proxy_buffering off;
proxy_request_buffering off;
}

listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/cloud.diraw.top/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/cloud.diraw.top/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}server {
if ($host = cloud.diraw.top) {
return 301 https://$host$request_uri;
} # managed by Certbot


listen 80;
listen [::]:80;
server_name cloud.diraw.top;
return 404; # managed by Certbot

}

启用 Nginx 配置并检查语法:

sudo ln -s /etc/nginx/sites-available/cloud.diraw.top.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

确保服务器防火墙允许 5212 端口:

sudo ufw allow 5212/tcp
sudo ufw status

六、配置 HTTPS

sudo certbot --nginx -d cloud.diraw.top

七、使用

cloudreve第一个注册的用户自动是admin

如果数据库突然奔溃了:

Image 1
sudo systemctl stop cloudreve
sqlite3 /opt/cloudreve/cloudreve.db "PRAGMA integrity_check;"

如果输出 ok,则删除 /opt/cloudreve/cloudreve.db-journal 这个文件,重启服务

sudo systemctl start cloudreve