TrueNAS Scale 折腾记录
写在前面
截止到本篇博客书写,最新的 TrueNAS Scale 的版本为 ElectricEel-24.10.0.2,即文章封面图所示的版本。从 TrueNAS Scale 24.10 版本开始,系统将 Docker Compose 作为默认的应用容器管理工具,替代了原来的 K3S,终于不用捏着鼻子用 K3S 了~
TrueNAS Scale 25.04 更新:从 25.04 开始,官方修复了数据保护中 OneDrive 的选项;此外网络页面中设置的代理开始对 docker 和 github 应用源生效,因此也无需开机自动换源了。
开机 Docker 自动换源(只针对 TrueNAS Scale 24.10)
将更新脚本写入到
/root/update_docker_daemon.sh
文件:sudo tee /root/update_docker_daemon.sh > /dev/null << 'EOF' #!/bin/bash sleep 30 # 备份原始文件 sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak # 使用 jq 添加新的键值对并写入临时文件 sudo jq '. + { "registry-mirrors": ["https://docker.1ms.run"] }' /etc/docker/daemon.json | sudo tee /etc/docker/daemon.json.tmp > /dev/null # 检查 jq 是否成功 if [ $? -eq 0 ]; then # 替换原始文件 sudo mv /etc/docker/daemon.json.tmp /etc/docker/daemon.json echo "成功更新 daemon.json 文件。" else echo "更新 daemon.json 文件失败,恢复备份。" sudo mv /etc/docker/daemon.json.bak /etc/docker/daemon.json fi # 重启 Docker 服务 sudo systemctl restart docker EOF
设置开机自启
在 TrueNAS Scale 系统->高级设置->开机/关机脚本中添加脚本,类型选“命令”,命令填bash /root/update_docker_daemon.sh
,什么时候选“初始化后期”,保存即可
恢复数据保护中的 OneDrive 项(只针对 TrueNAS Scale 24.10)
在官方论坛 Kiva 提出了解决方案,在命令行中执行:
# 将 /usr 目录重新挂载为可读写
sudo mount -o remount,rw /usr
# 如有需要,还要先设置 Git 代理
git clone https://github.com/imkiva/onedrive-sdk-python
cd onedrive-sdk-python/
# 将兼容高版本 Python 的 OneDrive SDK 库加入到 pip 包目录中
cp -ar src/onedrivesdk /usr/lib/python3/dist-packages
cp -ar src/python3/request /usr/lib/python3/dist-packages/onedrivesdk
# 下载核心脚本
cd /usr/lib/python3/dist-packages/middlewared/rclone/remote/
wget -e use_proxy=yes -e https_proxy=http://<ip>:<port> https://raw.githubusercontent.com/truenas/middleware/cd9acacac17f9a4e98883c7d8baefacd2085eea7/src/middlewared/middlewared/rclone/remote/onedrive.py
sed -i '1d;$d' onedrive.py
# 恢复 /usr 目录权限
mount -o remount,ro /usr
然后重启系统,便可以看到 OneDrive 备份项回来了~
配置 DDNS-GO 作为自定义应用
在 探索应用程序
中选择 自定义应用程序
:
分类 | 选项 | 填写内容 |
---|---|---|
Application name | 应用名称 | ddns-go |
Image Configuration | Image->Repository | jeessy/ddns-go |
- | ->Tag | latest |
- | ->Pull Policy | Pull the image if it is not already present on the host. |
Container Configuration | Restart Policy | Unless Stopped - Restarts the container irrespective of the exit code but stops restarting when the service is stopped or removed. |
Custom User | 用户 ID | 0 |
群组 ID | 0 | |
网络配置 | Host Network | 勾选 |
Storage Configuration | 存储->添加->Mount Path | /root |
->数据集名称 | ddns-go |
配置完打开 truenas-ip:9876
即可。
Nextcloud
在 cli 使用 occ:docker exec -u www-data <CONTAINER ID> occ <cmd>
,例如当自动更新失败时,可以手动使用 occ upgrade
重新触发更新。
可以通过修改 config/config.php
来配置 trusted_domains 域名:
'trusted_domains' =>
array (
0 => 'domain1',
1 => '127.0.0.1',
2 => 'localhost',
3 => 'domain2',
4 => 'domain3',
5 => 'domain:port',
6 => 'nextcloud',
)