Kiftd 私有网盘系统搭建

 

官网:Kiftd

 

项目地址1:GitHub

项目地址2:Gitee


准备工作

Java (JDK) 环境

其他准备

非必选内容

  • pm2
  • nginx

Kiftd 配置

安装 Kiftd

  1. 下载 kiftd
  2. 解压
  3. 右键kiftd-1.0.35-RELEASE.jar——打开方式——Java(TM)Platform SE binary 运行
# 简单地,运行 jar 包即可,但是这样无法后台运行,也没法自启动
# java -jar kiftd-1.0.28-RELEASE.jar -start

# 可以采用 systemd 来管理
# 但是因为我服务器有 pm2,所以我干脆也使用 pm2 进行启动管理
# 1. 创建一个启动脚本,如 kiftd.json, 注意修改 args
cat > kiftd.json << EOF
{
    "name": "kiftd",
    "script": "java",
    "args": [
        "-jar",
        "/opt/kiftd/kiftd-1.0.28-RELEASE.jar",
        "-start"
    ],
    "exec_interpreter": "",
    "exec_mode": "fork"
}
EOF

# 2. pm2 启动 kiftd
pm2 start kiftd.json

 

配置修改

账户配置
修改文件:conf/account.properties

# 1. 删除默认账户 admin
# 2. 建立自己的账户,示例如下:
# > auth 前的为账户名,后为权限
10101.io.auth=cudrm  
# > pwd 前为账户名,后为密码
10101.io.pwd=10101.io  
# 可以新建多个子用户并给权限
# 具体权限可定义如下
c - 创建文件夹
u - 上传文件
d - 删除文件或者文件夹
r - 重命名文件或者编辑文件夹
l - 下载文件
m - 移动文件或者文件夹

服务器配置

修改文件:conf/server.properties

# 允许 Web 上更改密码
password.change=Y  
VC.level=STANDARD
# 监听端口,可通过 IP:PORT 的方式访问
port=6666  
# 必须登录功能,O 为 OFF, N 为 O
mustLogin=N  
# 开启永久资源链接,CLOSE 关闭
openFileChain=OPEN  
# 文件系统存放路径
FS.path=DEFAULT  
# 日志记录,E 为记录全部、R 为仅异常、N 为不记录
log=E  
# 缓存大小
buff.size=1048576  

页面标题等配置

修改文件:

  • webContext/home.html :修改 <title> 以及 <span class="titletext"> 标签
  • webContext/prv/login.html:修改 <title> 等涉及网站信息的内容

更新 Kiftd

  • 下载新的 release 包
  • 解压后,将 jar 主程序、WebContext、mybatisResource、lib、fonts 文件夹内容覆盖旧版本对应文件夹,注意备份自己的修改
  • 如果使用了 pm2,更新 args 中 jar 主程序
  • 重启 kiftd 程序

Nginx 反代

采用 Nginx 反代,以支持域名访问及 HTTPS。

# 1. 将域名解析到服务器 IP
# 2. 生成 ssl 证书,以启用 https,推荐使用 acme.sh 免费申请及自动续签
# > 2.1 下载并执行 acme.sh 脚本
wget https://get.acme.sh | sh
# > 2.2 生成证书,这只是一种方式,其他方式可以自行搜索
acme.sh  --issue -d yourdomain.com  --standalone
# > 2.3 将生成的证书拷贝安装到指定文件夹
acme.sh  --installcert  -d  yourdomain.com   \
        --key-file   /path/to/yourdomain.com.key \
        --fullchain-file /path/to/fullchain.cer 
# 3. 创建 nginx 配置文件,如 yourdomain.com.conf,内容可参考如下
server {
  listen 80;
  #listen [::]:80;
  listen 443 ssl http2;
  #listen [::]:443 ssl http2;
  ssl_certificate /path/to/fullchain.cer;  # 注意修改
  ssl_certificate_key /path/to/yourdomain.com.key;  # 注意修改
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  server_name yourdomain.com;  # 注意修改
  if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
 
  location / {
    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_pass http://127.0.0.1:6666;  # 修改为设定的监听端口
  }
}

# 4. 重载 nginx
service nginx reload

 

posted @ 2021-08-24 23:52  Sakimir  阅读(449)  评论(0)    收藏  举报