
泰山派NAS服务器
简介
泰山派NAS服务器是一种专门设计用于存储、管理和共享数据的网络设备。
简介:泰山派NAS服务器是一种专门设计用于存储、管理和共享数据的网络设备。开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
【TSPINAS】 泰山派NAS服务器
这是一款基于泰山派开发板为基础而设计的迷你NAS服务器小主机。
B站演示视屏:https://www.bilibili.com/video/BV1j9Kxe9ECW/?vd_source=b29a942b9dc3778c6cf0be85efa96cd1

1 | 2 |
---|---|
![]() | ![]() |
开源协议
本项目采用GNU通用公共许可证(GPL)授权。GPL是一个自由软件许可证,确保所有用户都享有以下基本自由:
1.自由运行:可以用于任何目的。
2.自由研究:可以研究其工作原理,并根据需要进行修改。
3.自由分享:可以分发原始的副本,以帮助他人。
4.自由改进:可以发布你修改后的版本,分享你的改进。
注意事项
a.如果你分发本项目的修改版,你必须在发布时提供源文件。
b.任何基于本项目的派生作品也必须以GPL许可证发布,以确保继续保持开源的自由性。
c.此协议不对软件程序生效,只针对硬件部分。
感谢你对开源社区的支持和贡献!
项目属性
本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。
项目进度
时间 | 更新内容 |
---|---|
2024-02 | 编写需求文档,开发服务器前后端 |
2024-03 | 后端与前端开发,同步进行开发移动端APP |
2024-04 | 前后端+APP第一版开发完成,开始设计硬件部分 |
2024-05 | 打板验证,部署搭建系统环境,设计3D打印外壳。编写文章 |
目录
- 前言
- 需求分析
- 开发环境
- 功能简介
- 物料说明
- 效果展示
- NAS系统使用说明
1. 前言
何必只是开源?授人以鱼不如授人以渔!
如果只是原封不动的去复刻那有什么意思? 所以笔者建议不如大家可以把这篇文章作为一个经验分享的教程干货去看。
我的目标是帮助那些和我一样刚刚接触Linux开发的初学者,在阅读这篇经验分享文章后,能够独立设计出属于自己的优秀作品。为此,我专门撰写了一个系列文章记录了我的开发笔记。希望这些内容能够对和我一样的初学者有所帮助,让大家少走一些弯路!
你可以从此笔记中学到什么?
声明:此笔记较仅代表个人开发中的经验总结,即本人能力有限不保证100%无误。如介意请谨慎阅读或者离开
- 原理图和PCB设计中的一些设计点,以及PCB布线的一些注意事项。
- 百兆以太网RMII的设计及PCB布线经验
- 千兆以太网RGMII的设计及PCB布线经验和一些坑
- 详细讲述如何修改dts设备树文件,实现SATA、gmac百兆以太网的适配。
- 调试gmac的经验分享
- 调试SATA的经验分享
- 如何构建自己的Ubuntu定制化系统(二开修改方式)。
- update.img 如何分包和分包后修改里面的镜像文件在重打包。
- 如何驱动标准SPI协议的TFT屏幕
- 如何驱动带电容触摸屏的TFT屏幕中触摸部分
- 如何使用GPIO模拟I2C (扩展知识点)
- 如何使用GPIO模拟SPI (扩展知识点)
- 模拟SPI和硬件SPI驱动屏幕的区别
- LVGL9.1集成实现屏幕监视器和小时钟的实现教程
- 如何配置使用:SMB、FTP、WebDav
- Ubuntu下如何连接配置WIFI链接
- TODO......
2. 需求分析
其实一开始我的服务端软件设计的很复杂,开发了1个月发现时间根本来不及完全开发完成。于是核心的功能先做了出来,其他等后续在写。
下图仅是我对项目的规划,但实际完成功能以具体使用为准。


3. 功能简介
利用泰山派开发全套解决方案
我们选择泰山派作为主控,开发了一整套解决方案。操作系统采用Ubuntu 20,支持10/100M以太网,并且可以同时使用网口和WiFi。
3.1 扩展功能
- 存储扩展:通过扩展SSD (mSATA)固态硬盘,实现大容量存储。
- 显示与监控:配备2.4寸TFT电容触摸屏,可以监控系统指标或作为桌面小时钟使用。
- 外壳引出4个USBA口,1个普通C口、1个OTG功能C口、1个MiniHDML、1个PD快充C口
3.2 TSPINAS服务器
- 私有云盘:我们自研了TSPINAS服务器,搭配专用APP,可实现远程文件和媒体管理,打造属于你的私有云盘。
- 权限管理:提供自由且安全的权限管理机制。通过后台管理页面,用户可以灵活配置访问控制列表 (ACL),实现操作、读写、删除等多级别的精细控制。
- 文件分享:支持文件自由分享,类似百度网盘。(2024-05-22:当前分享暂无页面体验感较好需要无密码,否则需手动拼接请求参数附带密码)。
- 分段下载与断点续传:系统内所有文件下载均支持主流的分段下载(多点下载),并且支持断点续传。
3.3 数据同步与管理
- 差异文件扫描:服务启动时会自动扫描差异文件,确保本地数据库与物理文件夹内的数据文件保持一致。
- 实时文件同步:实现多端实时文件同步,物理磁盘内的操作会实时同步到系统内(目前在Ubuntu下测试存在问题,暂时关闭此功能)。
3.4 更多功能待定开发....
3.5 扩展外设
PCB硬件部分使用泰山派作为主控开发板,配合底板实现扩展功能。
- 选择百兆以太网PHY芯片(布线简单设计简单) 千兆版本也有不过sata有问题此版本舍去,需要改造千兆的请阅读开发笔记。
- 支持mSATA插槽的固态SSD,可支持半高全高
- PD供电最大诱骗12V,自带12升压稳压电路可支持5V供电
- 支持使用外部DCDC适配器供电,引出PH2.54座子去除保险可切换供电源
- 使用PH2.0座子分别引出5V、12V供电。可支持外置风扇供电或RGB供电等等...
- 由于使用百兆RMII协议,所以从EXP接口空闲出很多IO接口,板子通过排针引出10个扩展IO口、
- 支持USB2.0 HUB扩展,三个USB A口扩展,一个C口扩展。
- 可添加RTC电池
- 更多关于设计细节请阅读开发笔记文章,这里不做过多重复性赘述。
3.6 系统监视器
一开始打算使用模拟SPI和I2C驱动屏幕的奈何速率太低效果太差,最终将排线去掉引出IO做扩展,选择从泰山派顶部IO口使用硬件SPI驱动。
等待有人改造为MIPI驱动吧
使用2.4寸TFT 电容触摸屏模块作为显示组件
- 软件使用LVGL9.1构建
- 支持系统监控:上下行网速监控、存储大小及使用率、CPU温度、CPU使用率、内存使用率
- 左右滑动切换显示内容
- 桌面实时时钟 (辐射-避难所)游戏风格UI主题
- 需要设计资料可以联系索取

4. 物料说明
本项目使用了嘉立创的SMT(首次体验效果真棒),所以在底部BOOM描述中均为真实物料参数。
下面表格会特殊描述下不在BOOM内的物料信息。
序号 | 物料名称 | 采购链接 |
---|---|---|
1 | 39Pin软排线 0.3mm间距 同向30mm线长 | https://item.taobao.com/item.htm?_u=n1v3prvpbb4a&id=589957580932&spm=a1z09.2.0.0.3df52e8dU9geH7 |
2 | SATA焊接铜柱: M2x3x4 | |
3 | POGOPIN: 16.0MM | https://item.taobao.com/item.htm?spm=a1z09.2.0.0.67002e8dowsFnW&id=587069006439&_u=n1v3prvp9c8a |
4 | M3铜柱:M3x15+6 | |
5 | 注塑热熔铜螺母M3:M3x4x4.2 | https://item.taobao.com/item.htm?spm=a1z09.2.0.0.67002e8dowsFnW&id=673367228604&_u=n1v3prvpd660 |
6 | M2x10x5 | |
7 | 热塑滚花螺母:M2x3x3.2 | |
8 | 2.4寸TFT 电容触摸屏 | https://item.taobao.com/item.htm?spm=a1z09.2.0.0.17e02e8dAxjxdK&id=748318527653&_u=r1v3prvp465a |
5. 软件开发环境
后端
- 开发语言:Java
- 环境:JDK17
- 系统:Ubuntu,WIN11
- 核心框架: SpringBoot3
- 数据库: mysql8
前端
- 开发语言:JS+HTML+TS+CSS
- 核心框架: Vue3 + Vite
- 包管理: pnpm
- UI框架: Element UI Plus
APP端
- 语言:Dart
- 框架:Flutter
- 跨平台适配Android + IOS
系统监视器
- 语言:C
- 核心框架: LVGL9.1
开源Git地址
- 服务端SpringBoot项目: https://github.com/ccy-studio/tspi-nas-server
- 后台管理页面:https://github.com/ccy-studio/tspi-nas-web
- Flutter移动端:https://github.com/ccy-studio/tspi-nas-app
- LVGL9.1小屏幕监视器: https://github.com/ccy-studio/tspi-nas-lvgl
相关资料
-
NAS系统镜像update.img下载: https://115.com/s/swzvzer3h3x?password=h990&#访问码:h990
-
配套APP客户端下载(仅安卓,IOS需自行打包签名):链接: https://pan.baidu.com/s/1VgCXAvpNXgYR71Q-ElzEIw?pwd=3j4i 提取码: 3j4i
-
杂项资料下载:见底部附件
参考文章
立创官方扩展板与资料:https://lceda001.feishu.cn/wiki/IJtRwVu5kiylHykl3RJcQ8ANncY
Ubuntu制作教程:https://oshwhub.com/forum/post/a81bfab590fa4d2b9312c95c8c8c3f9b
技术交流群Q:676436122
---------有志同道合的伙伴可以一同继续开发此服务系统,欢迎交流!---------
6. 展示

6.1 后台管理
使用方法请观看B站发布的视屏


6.1.2 对当前实现后台功能简单描述
首次使用本系统数据都是空的,请先配置基础数据后方能正常使用此系统。
权限功能是对设备文件内的数据进行访问控制的保护。您可以随意授权任何人或取消任何人的ACL访问控制策略,具体功能如下
1. 资源管理
资源管理用于描述一组资源,可以包括SMB、FTP和私有文件协议的文件管理。资源路径通常针对非私有文件协议的资源类型起作用。例如,配置SMB路径为/mnt/ssd/res1作为一个资源项。
2. 用户组管理
用户组管理用于对一群用户进行分组,便于更好地管理。用户组可以绑定多个资源,即资源与用户组之间为一对多的关系。
3. 用户管理
用户管理用于新增用户账户。用户需要绑定到用户组,并且可以分配多个用户组。绑定的用户将拥有多个用户组下所绑定的全部资源。
4. 存储管理
存储管理用于对资源下的存储进行分配和管理ACL策略。可以新建根文件,类似磁盘功能。新建存储桶需要绑定资源,绑定关系为一对一。还需要对挂载路径进行描述,后续文件操作将以描述的挂载路径进行。新建的存储桶需要设置权限,可以设置为私有、公写公读、私写公读,并需要配合权限范围进行二次描述,如:私有、资源组内公开、全公开。
5. 存储管理 - ACL策略管理
您可以针对特定的用户设置更细粒度的权限设置,统称为ACL策略(访问控制列表)。ACL用于定义和管理对资源访问权限的策略,广泛应用于计算机安全和网络管理中,精细控制用户或系统进程对特定资源(如文件、目录、网络设备、服务等)的访问权限。
要为一个存储桶新增ACL策略,您需要制定一个目标用户并设置其具有的读、写、删、分享权限。
通过这些功能,您可以灵活地管理和控制设备文件内数据的访问权限,确保数据安全和访问效率
6.2 客户端APP
1 | 2 | 3 |
---|---|---|
![]() | ![]() | ![]() |
登录页 | 点击右上角配置服务器地址或域名后台地址后缀为/api结尾 | 主界面,显示当前用户有权限的存储 |
![]() | ![]() | ![]() |
可以新建文件夹和上传任意格式文件 | 点击可预览,可对文件执行操作:操作按钮根据用户权限动态显示 | 创建文件分享。 |
7. 快速组装

1 | 2 | 3 |
---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
设计图

BOM


评论