首页
iYoRoy DN42 Network
关于
友情链接
Language
简体中文
English
Search
1
Docker下中心化部署EasyTier
1,735 阅读
2
给Android 4.9内核添加KernelSU支持
1,097 阅读
3
记一次为Android 4.9内核的ROM启用erofs支持
309 阅读
4
在TrueNAS上使用Docker安装1Panel
301 阅读
5
2025羊城杯初赛WriteUp
294 阅读
Android
运维
NAS
开发
网络技术
专题向研究
DN42
个人ISP
CTF
登录
Search
标签搜索
网络技术
BGP
Linux
BIRD
DN42
C&C++
Android
OSPF
MSVC
AOSP
Windows
Docker
caf/clo
TrueNAS
内部路由协议
服务
iBGP
Clearnet
DNS
STL
神楽悠笙
累计撰写
23
篇文章
累计收到
11
条评论
首页
栏目
Android
运维
NAS
开发
网络技术
专题向研究
DN42
个人ISP
CTF
页面
iYoRoy DN42 Network
关于
友情链接
Language
简体中文
English
搜索到
3
篇与
的结果
通过Alist使TrueNAS同步到OneDrive
背景 手上有个E5订阅,本来用的方案是Docker运行driveone/onedrive:edge的方式来实现同步,但是这个方案一个是这种方式没有GUI/WebUI,一个是每次同步的时候都会占用掉CPU 25%-50%的性能。考虑到TrueNAS自带的同步方案可以向WebDAV同步,因此想到能用Alist来挂载OneDrive并转换成WebDAV供TrueNAS挂载。 折腾过程 安装Alist 为Alist创建持久化存储文件夹,并根据Alist官方文档编写Docker Compose: services: alist: environment: - PUID=3000 - PGID=950 - UMASK=022 image: xhofe/alist:latest ports: - '8088:5244' restart: always volumes: - /mnt/systemdata/DockerData/alist/etc:/opt/alist/data - /mnt/data/Storage:/mnt/data 此处我将Alist端口开放在8088,其中映射/mnt/data/Storage是为了让Alist可以管理本地的存储;映射/mnt/systemdata/DockerData/alist/etc作为存储Alist数据的文件夹。 关于如何配置Alist上的OneDrive本文不做讨论,请查询Alist官方文档。此处我将我的OneDrive挂载在/OneDrive。 完成后进入Alist后台-用户,编辑你的用户或者创建一个新用户,勾选Webdav 读取、Webdav 管理以使得该用户可以使用WebDAV。 配置TrueNAS同步 进入TrueNAS后台-Credentials-Backup Credentials,添加一个Cloud Credential,参数如下: Provider: WebDAV Name: 自定义 URL: Alist地址+/dav,例如我这里填写http://127.0.0.1:8088/dav WebDAV Service: OTHER Username和Password: Alist账号密码 Verify Credential确认没问题之后保存。 接着进入TrueNAS后台-Data Protection,添加一个Cloud Sync Task,Provider下的Credentials选择刚刚创建的Alist的WebDAV,点击下一步。此处的参数有很多种,详解如下: Direction: 分为PULL和PUSH,分别对应云端同步到本地和本地同步到云端 Transfer Mode: COPY: 复制文件,若源文件夹中先前有的文件后来删除了云端的不会被删除 MOVE: Copy后删除源文件夹相关文件 SYNC: 保持源文件夹和目标文件夹同步,源文件夹删除的文件也会在目标里删除 Directory/Files: 即本地需要同步的文件或文件夹 Folder: 即云端需要同步的文件夹 Description: 注释 Schedule: Cron定时,可以使用他预设的时段或者自己编写 比如我这里选择的是PUSH,SYNC,从/mnt/data/Storage同步到/OneDrive/TrueNAS,每天0:00执行。 编辑完成后保存,即可在你设置的时段自动将本地文件上传到OneDrive。 旧方案的项目地址: https://github.com/abraunegg/onedrive 参考文章: https://alist.nn.ci/zh/guide/install/docker.html https://alist.nn.ci/zh/guide/drivers/onedrive.html
2025年03月13日
172 阅读
0 评论
0 点赞
在TrueNAS上使用Docker安装1Panel
背景 家里TrueNAS性能剩余,想着部署个web服务。想要装个面板减少点工作量,又考虑到虚拟机性能折损和zfs cache对内存的要求比较大以及NAS本身性能也不好,便打算使用docker部署。再加上1Panel本身也是以docker为介质,二者共同控制TrueNAS宿主机的docker daemon,约等于直接将网站部署到TrueNAS本地并且也便于管理。 分析 {alert type="warning"} 本文默认TrueNAS可以访问dockerhub并且已经配置好了docker daemon {/alert} 环境信息 Storage Pool 存在两个存储池: /mnt/data: 1 x MIRROR | 2 wide | 2.73 TiB | HDD /mnt/systemdata: 1 x DISK | 1 wide | 223.57 GiB | SSD 其中docker数据存储在2号存储池中。 Datasets 存在三个数据集: Storage: 位于data存储池,存放冷数据 DockerData: 位于systemdata存储池,存放容器的持久化存储文件 KaguraiYoRoy: 位于systemdata,用户home文件夹 安装1Panel 使用了moelin/1panel:latest镜像部署,此步骤很多部分都可以参考镜像作者写的README。项目地址: {cloud title="okxlin/docker-1panel" type="github" url="https://github.com/okxlin/docker-1panel" password=""/} 在DockerData数据集创建了一个文件夹专门用于存储1panel数据,即用作容器内/opt/1panel,位于/mnt/systemdata/DockerData/1panel。 持久卷 因为要允许1Panel管理宿主机docker,因此需要映射/var/run/docker.sock和宿主的docker文件夹 映射上文为其创建的数据文件夹 TrueNAS的docker文件夹和一般的Linux位置不一样,一般的Linux位于/var/lib/docker而TrueNAS的位于/mnt/.ix-apps/docker。 环境变量和端口映射 环境变量和镜像作者的设置相同,传入TZ=Asia/Shanghai;端口映射根据需要自行设置即可,容器内端口为10086。 Docker Compose 有了上述信息,编写docker compose就容易许多了。 完整Docker Compose文件如下: services: 1panel: dns: - 223.5.5.5 environment: - TZ=Asia/Shanghai image: moelin/1panel:latest labels: createdBy: Apps ports: - '8085:10086' restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock - /mnt/.ix-apps/docker:/var/lib/docker - /mnt/systemdata/DockerData/1panel/opt:/opt/1panel - /mnt/systemdata/DockerData/1panel/root:/root - /etc/docker:/etc/docker 这里映射/root是因为我需要在容器内运行Git,而Git config存储在/root下; 设置dns是因为1Panel制作环境镜像的时候需要连网下载数据,不指定dns会报错。 安装完成后访问你设置的端口即可。 1Panel基础信息: 默认账户:1panel 默认密码:1panel_password 默认入口:entrance 故障处理 Docker镜像源 实际测试的时候发现如果不设置镜像源,即使配置了Proxy,在安装PHP环境的时候也会报错~~,并且配置了镜像源同时配置了Proxy也会安装失败,不清楚为什么~~ 打开TrueNAS的/etc/docker/daemon.json并添加registry-mirrors: { "data-root": "/mnt/.ix-apps/docker", "default-address-pools": [ { "base": "172.17.0.0/12", "size": 24 } ], "exec-opts": [ "native.cgroupdriver=cgroupfs" ], "iptables": true, "registry-mirrors": [ "https://docker.1panel.live" ], "storage-driver": "overlay2" } 保存,重启主机docker,再去1Panel里安装环境。 {alert type="warning"} 这一步的配置重启后会丢失,尽量一次性安装好环境和需要的app {/alert} 1Panel创建的容器无法启动 这个是因为在1Panel中,默认存储数据的文件夹是我们所映射出来的/opt/1panel,但是实际上创建的容器运行在TrueNAS里,访问的是TrueNAS里不存在的/opt/1panel,并且其/opt默认是只读的,因此在启动容器的时候会报错Read-only filesystem。 我自己的解决方案也很简单粗暴,在TrueNAS主机中先挂载/opt为可读写,再创建一个软链接指向1Panel的数据文件夹。 cd /opt mount -o remount,rw /opt ln -s /mnt/systemdata/DockerData/1panel/opt 1panel 然后就可以正常使用啦 有一个需要注意的点,在1Panel中安装OpenResty时记得避开使用80和443端口,这俩是TrueNAS的webui默认端口
2025年03月07日
301 阅读
0 评论
0 点赞
为黑群晖迁移RR引导盘
写这篇文章是因为原来的磁盘是一个16g的u盘,目标磁盘是一条16g的傲腾,虽然都是16G但是原先那个稍微大一点(我也不知道为什么(逃 直接dd肯定是行不通了,原盘比目标盘大,故记录下折腾过程 {alert type="warning"} 数据无价,折腾需谨慎 {/alert} 分析 RR引导盘一共有三个分区: FAT32,50.00MB Ext2,50.00MB Ext4,剩余所有空间 其中,第一个分区是引导分区,是可引导的(fdisk -l中Boot被打了星号);第二个没研究是什么,估计是grub,第三个存放了群晖的内核和RR的配置文件 思路 因为前两个分区大小很小,所以直接用dd将两个分区完整拷贝到目标磁盘;第三个分区手动创建并格式化后将UUID、Label同步过来 {alert type="warning"} 折腾过程使用Linux操作 {/alert} 开整 将两块磁盘接入系统,分别为原盘/dev/sda,目标盘/dev/sdb 查看原盘信息: sudo fdisk -l /dev/sda 输出: Disk /dev/sda: 14.55 GiB, 15627976704 bytes, 30523392 sectors Disk model: Storage Media Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x66d0fe82 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 104447 102400 50M 83 Linux /dev/sda2 104448 206847 102400 50M 83 Linux /dev/sda3 206848 30523391 30316544 14.5G 83 Linux 将前两个分区和磁盘分区表信息拷贝到目标盘 sudo dd if=/dev/sda of=dev/sdb count=206848 # 此处count的数值为上面第三个分区的起始请根据你的磁盘修改 输出: 206848+0 records in 206848+0 records out 105906176 bytes (106 MB, 101 MiB) copied, 11.3812 s, 9.3 MB/s 创建第三个分区 使用fdisk打开磁盘: sudo fdisk /dev/sdb 先删除原有的第三个分区的分区数据:输入d,输出Partition number (1-3, default 3):时输入3或直接回车; 提示Partition 3 has been deleted.后输入n创建分区,Partition type选择主分区,即p,剩下一路默认回车即可。完成后输入w保存退出。 不会用fdisk的建议自行搜索 格式化新创建的分区并写入UUID等信息 sudo mkfs.ext4 /dev/sdb3 使用file指令查看原盘第三个分区的信息: sudo file -s /dev/sda3 输出: /dev/sda3: Linux rev 1.0 ext4 filesystem data, UUID=617a3aca-4b56-42d7-8558-54411b344a7d, volume name "RR3" (extents) (64bit) (large files) (huge files) 记录下UUID和volume name(即"RR3"),并使用如下指令将UUID和volume name写入新盘: sudo tune2fs /dev/sdb3 -U df39b1f3-b846-49dc-a317-ce329ec87ca2 # 写入UUID sudo tune2fs /dev/sdb3 -L RR3 # 写入volume name 拷贝数据 挂载两个盘的第三分区,假设原盘为~/a,目标盘为~/b,接着拷贝a中的所有数据到b(这步直接cp指令就行,不多赘述了) 最终,umount所有挂载点,拔下磁盘接入黑群晖,迁移成功。
2025年01月30日
281 阅读
0 评论
4 点赞