Loading... <div class="tip share">请注意,本文编写于 1626 天前,最后修改于 1224 天前,其中某些信息可能已经过时。</div> ## 前言 其实我对个人网盘没有什么需求,不过前些日子有人评论说 CFW 或者 CFA 下载遇到困难,我就在自己服务器上传了一份。但是直接当作 typecho 附件传上来不大方便,所以才有了弄个小小网盘的想法。 之前挺中意 Gofi 的,毕竟颜值比较高,但是功能上还是太薄弱了点(其实主要是没有权限控制)。然后看到 @Rat 大佬的[博文](https://www.moerats.com/archives/818/),才尝试使用了这款程序。以下仅做个记录,供回顾。 **项目相关**: - 项目地址:[GitHub](https://github.com/KOHGYLW/kiftd) - 官网:[Kiftd](https://kohgylw.gitee.io/) ## 准备工作 ### Java 环境 需要安装 JDK,方式主要有: - OpenJDK:可以通过发行版的软件源安装,如 `apt install openjdk-8-jdk`;也可以自己下载 JDK 包,如镜像站 [清华大学开源软件镜像站](https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/),然后设置环境变量 - ~~OracleJDK:太麻烦,放弃~~ 查看 Java 版本,检查是否安装成功: ```java java -version ``` ### 其他准备 非必选内容 - pm2 - nginx ## Kiftd 配置 ### 安装 Kiftd 1. 下载 kiftd ```bash # > 可以直接 git clone 仓库,也可以下载 release 包,这里以 v1.0.28-release 为例 wget https://github.com/KOHGYLW/kiftd/archive/v1.0.28-release.tar.gz ``` 2. 解压 ```bash tar -xzf v1.0.28-release.tar.gz ``` 3. 进入文件夹下 ```bash cd kiftd-1.0.28-release ``` 4. 运行 ```bash # 简单地,运行 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` ```bash # 1. 删除默认账户 admin # 2. 建立自己的账户,示例如下: # > auth 前的为账户名,后为权限 10101.io.auth=cudrm # > pwd 前为账户名,后为密码 10101.io.pwd=10101.io # 具体权限可定义如下 c - 创建文件夹 u - 上传文件 d - 删除文件或者文件夹 r - 重命名文件或者编辑文件夹 l - 下载文件 m - 移动文件或者文件夹 ``` - 服务器配置 **修改文件**:`conf/server.properties` ```bash # 允许 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。 ```bash # 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`(仅有下载权限) 最后修改:2021 年 06 月 06 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏
9 条评论
好像没发webdav之类的挂载功能,目前用的Seafile
这是一篇很不错的博客,偶然简看到了,表示支持!
设置账户密码文中有一处需要特别提示:account.properties和server.properties两个配置文件中的注释不应和配置主体写在同一行,因为这样会导致程序识别错误。正确的做法是将注释与配置分开单独写为一行,示例如下:
kohgylw.pwd=123456
如果设置为这样:
kohgylw.pwd=123456 #This is password of account
那么程序将解析为“123456 #This is password of account”都是kohgylw的密码。
特此提醒~
是作者吗?感谢支持,文中注释问题我找时间改下,谢谢提醒
em...这好像是最基本该知道的
不客气~也希望kiftd可以帮助到您!
之前以为挂了的onedrive竟然又可以用了
啥,A1P 之类的吗
我用的nextcloud 也还不错
这种感觉太重了些,我就弄个轻量级的就可以了。