前言

其实我对个人网盘没有什么需求,不过前些日子有人评论说 CFW 或者 CFA 下载遇到困难,我就在自己服务器上传了一份。但是直接当作 typecho 附件传上来不大方便,所以才有了弄个小小网盘的想法。

之前挺中意 Gofi 的,毕竟颜值比较高,但是功能上还是太薄弱了点(其实主要是没有权限控制)。然后看到 @Rat 大佬的博文,才尝试使用了这款程序。以下仅做个记录,供回顾。

项目相关

准备工作

Java 环境

需要安装 JDK,方式主要有:

  • OpenJDK:可以通过发行版的软件源安装,如 apt install openjdk-8-jdk;也可以自己下载 JDK 包,如镜像站 清华大学开源软件镜像站,然后设置环境变量
  • OracleJDK:太麻烦,放弃

查看 Java 版本,检查是否安装成功:

java -version

其他准备

非必选内容

  • pm2
  • nginx

Kiftd 配置

安装 Kiftd

  1. 下载 kiftd

    # > 可以直接 git clone 仓库,也可以下载 release 包,这里以 v1.0.28-release 为例
    wget https://github.com/KOHGYLW/kiftd/archive/v1.0.28-release.tar.gz
  2. 解压

    tar -xzf v1.0.28-release.tar.gz
  3. 进入文件夹下

    cd kiftd-1.0.28-release
  4. 运行

    # 简单地,运行 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 主程序WebContextmybatisResourcelibfonts 文件夹内容覆盖旧版本对应文件夹,注意备份自己的修改
  • 如果使用了 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

后话

Kiftd UI 比较简陋,但是功能还是很强大的,支持影音在线播放、图片文档在线预览等。不过因为我用得比较少,也没有具体去了解它各项功能支持是否好用就是了。

我的地址https://asset.10101.io/

账户/密码10101.io/10101.io(仅有下载权限)

最后修改:2020 年 05 月 13 日 09 : 29 PM
如果觉得我的文章对你有用,请随意赞赏