我拿来玩AI编程的第一个产品,在简单骨架上调整设计,暂时满足了个人使用需求。
这是一个用于对底层 WebDAV 进行透明加密的代理服务器。
1. 生成配置文件
docker run -itd --rm --network=host -v $(pwd)/data:/app/data --name wproxy --log-driver=json-file --log-opt max-size=10m --log-opt max-file=3 --cpus=1 docker.cnb.cool/ep219/wproxy -gen-config
2. 修改配置文件
编辑 data/config.json,主要是填写底层存储信息:
| 字段 | 说明 |
|---|---|
listen_addr | Web 监听端口 |
enable_https | 是否开启 HTTPS(详见下文) |
https_domain | HTTPS 域名 |
webdav_url | 底层 WebDAV 存储地址 |
webdav_user | 底层 WebDAV 存储账号 |
webdav_pass | 底层 WebDAV 存储密码 |
proxy_user | 代理服务器账号,WebDAV 复用 |
proxy_pass | 代理服务器密码,WebDAV 复用 |
encryption_key | 自定义 32 位加密密钥 |
database_path | 数据库文件路径 |
virtual_path | 虚拟路径前缀 |
enable_s3 | 是否暴露 S3 协议 |
s3_listen_addr | S3 监听端口 |
s3_access_key | S3 认证,如果为空复用 proxy 账号密码 |
s3_secret_key | S3 密钥 |
s3_region | S3 区域 |
s3_bucket_name | S3 桶名 |
3. 启动容器
docker run -itd --restart=unless-stopped --network=host -v $(pwd)/data:/app/data --name wproxy --log-driver=json-file --log-opt max-size=10m --log-opt max-file=3 --cpus=1 docker.cnb.cool/ep219/wproxy
代理服务器本身对底层存储的文件进行了加密,对文件名做了 UUID 映射。在内网,直接使用 HTTP 即可(方便使用第三方客户端);如果是公网环境,你对传输过程也有加密需求,需要开启 HTTPS。
enable_https 设置为 true 并填好你的域名https://域名:监听端口 访问,会自动申请 Let's Encrypt 证书