我想运行一个 qbittorrent 容器,我可以通过 Rust Rocket 后端的 api 使用它。我正在使用 docker-compose 文件来配置容器。
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- WEBUI_PORT=8080
- TORRENTING_PORT=6881
volumes:
- ./config:/config
- ./downloads:/downloads
ports:
- 8080:8080
- 6881:6881
- 6881:6881/udp
restart: unless-stopped
tmpfs:
- /run:exec
read_only: true
我遇到的问题是,每次容器启动时,qbittorrent 都会生成一个用于 WebUI 登录的随机密码。这些凭据记录在容器日志中:
docker logs <id>
。显然,这对于从我的 Rust 后端使用环境变量进行访问并不理想。
通过修改
qBittorrent.conf
文件,我已经能够设置用户名:
[Preferences]
...
WebUI\Password=password123
WebUI\ServerDomains=*
WebUI\Username=user123
并且日志显示:
The WebUI administrator username is: user123
qbittorrent | The WebUI administrator password was not set. A temporary password is provided for this session: HqTAInCtJ
qbittorrent | You should set your own password in program preferences.
我在docker-compose环境中尝试了很多不同版本的设置密码:
...
environment:
- QB_WEBUI_PASSWORD=password123
and
- WEBUI_PASSWORD=password123
and
- WEBUI_PASS=password123
and more...
日志还表明我可以设置自定义初始化文件:
[custom-init] No custom files found, skipping...
我已阅读文档:https://github.com/qbittorrent/qBittorrent/wiki并且滥用了LLM并且找不到解决方案。
从后端程序访问 api 的最佳实践是什么以及如何管理凭据?
编辑: 如果你设置了
WebUI\Password_PBKDF2
在首选项中,您可以设置哈希密码。
如果您愿意使用静态密码,您可以创建自己的 docker 镜像(基于当前使用的镜像)并执行类似的操作
RUN echo "WebUI\\Password_PBKDF2=\"YOURHASHEDPWD\"" >> /defaults/qBittorrent.conf