ChatGPT-Next-Web WebDav 同步问题之解决

Alala

<ChatGPT-Next-Web>开发得粗糙且混乱。但是看在更新及时的份上也就还在用……嗯,若有更高的解决方案,烦请推荐!

但是如<前文>之所描述的WebDAV无法同步的问题实在令人烦扰。我已经多次清理浏览器缓存时丢失聊天记录和配置了。此外,若能在多设备间同步设置和历史记录也会方便许多。

直到今天我看到<这里>,终于有了一个好的解决方案。

那么,完整的过程大致如下:

搭建WebDAV服务器

编辑nginx配置文件:

    location /webdav {
        alias /var/www/webdav; # WebDAV目录位置
        dav_methods PUT DELETE MKCOL COPY MOVE; # 允许的方法
        dav_ext_methods PROPFIND OPTIONS; # 允许的扩展方法
        create_full_put_path on; # 允许自动创建文件路径
        dav_access group:rw all:r; # 权限设置
        autoindex on; # 开启目录列表

        auth_basic "WebDAV Access";
        auth_basic_user_file /etc/nginx/webdav.passwd; ### 使用 htpasswd 生成
    }

创建目录和文件

进入 /var/www/webdav, 创建目录及文件chatgpt-next-web/backup.json。 注意可能的权限问题。

面板设置

进入面板设置中,配置云同步页面里,勾选启用代理代理地址无效,可不填。

WebDAV地址填写上述nginx服务器的地址或域名,需要带上/webdav路径或你更改过的路径。

用户名及密码填写htpasswd命令时输入的用户名及密码。

ChatGPT-Next-Web 环境变量

添加环境变量: - WHITE_WEBDAV_ENDPOINTS=https://your-domian/webdav/


这样就完成了。

此时检查可用性仍然失败,但是同步应该已经可以成功。

本文编辑时,ChatGPT-Next-Web 版本为 v2.15.8


Frequently typo: WebDev


Alternative of htpasswd:

openssl passwd -apr1

And manually edit the /etc/nginx/webdav.passwd file:

username:$hash

仍存在的问题:

dav_ext_methods PROPFIND OPTIONS; # 允许的扩展方法

对于通过apt dnf命令安装的nginx,此项经常未被编译而报错。