首页 产品优势 部署指南 关于我们 联系我们
首页 / 产品优势

七项产品优势

这些优势不是功能清单的堆砌,而是针对自托管商城在实际使用中会遇到的问题给出的方案: 部署形态受限、依赖难以维护、数据不在自己手里、资金链路缺少留痕。

01 · 部署方式

一套代码,两种部署形态

TechShop 同时提供 fnOS 应用包与 Docker 镜像两种交付方式。 在前者,它是一个符合 fnOS 规范的应用,可随系统启停、在应用中心统一更新; 在后者,它通过 Docker Compose 拉起,可以跑在任何支持容器的 x86_64 或 arm64 主机上。

fnOS 应用包可直接在应用中心安装;Docker 镜像与编排文件不公开发布, 需要时请联系我们获取。两种形态共用同一套业务代码与数据格式 —— 今天用 Docker 试跑,明天迁到 fnOS 应用包,只涉及数据目录的搬运, 不需要改配置或重新初始化。

  • 部署便捷:应用包由安装向导引导完成,Docker 侧只需一份编排文件
  • 跨平台兼容:支持 x86_64 与 arm64 架构,镜像与运行时均可对应替换
  • 易于维护升级:升级后自动比对版本并重启,避免旧进程继续占用端口
  • 迁移成本低:数据是本地文件,无需导出数据库
  • Docker 版本按需获取:镜像与编排文件不公开发布,需要时请联系我们
两种部署形态对照
对比项fnOS 应用包Docker
获取方式应用中心直接安装联系技术支持获取
安装方式应用中心 / appcenter-clidocker compose up
随系统启停支持由容器策略控制
数据位置向导中指定挂载卷指定
端口管理向导配置编排文件映射
卸载保留数据可选保留挂载目录即可
适用场景飞牛 fnOS 设备其它 Linux / NAS 平台

Docker 版本需要单独获取,详见联系我们。


02 · 架构设计

按业务域拆分,单一应用进程

把商品、订单、优惠券、钱包、落地页、邮件与风控拆成彼此独立的模块, 模块之间通过明确的函数边界交互。运行时不引入外部中间件, 因此没有消息队列堆积、连接池打满这类额外的故障来源。

这些模块全部跑在同一个 Node 进程里。请求先经 fnOS 统一网关转发进来, 再在这一进程内处理完毕 —— 省去的是应用内部的服务间调用, 而不是说整条链路只有一个进程。

模块化

业务域彼此独立

每个模块自带数据结构与处理逻辑,修改支付风控不会波及其它模块。新增业务时按域扩展,而不是在既有代码里打补丁。

高性能

应用内无跨服务通信

业务模块同处一个进程,请求在进程内直接调用完成,省去服务间序列化与网络往返。常规商品页与后台操作不涉及额外跳转。

可扩展

接入点明确

商品分类、下单字段、邮件模板、风控阈值都留有配置项,多数定制无需改动代码即可完成。

稳定性

写入自带兜底

数据文件解析失败时自动回退到最近一次可用快照,避免单次写入异常导致整站不可用。

可观测

日志集中在一处

运行日志、请求统计与安全日志都由同一进程输出,排障时不必在多个服务间来回翻找。

易迁移

数据格式可读

业务数据以结构化的可读文件保存,出问题时可以直接查看内容,也可以用脚本批量处理。


03 · 安全性

数据加密、权限控制与隐私保护

安全机制分四层落地:凭据不落明文、会话可撤销、访问受控、交易有风控。 管理后台与对外前台走不同的入口,敏感操作单独校验, 所有越权尝试都会写入安全日志。

  • 数据加密:管理员与用户口令一律使用 scrypt 加盐哈希,日志与配置中不出现明文;哈希为异步计算,校验口令不会卡住其它请求
  • 传输配合:敏感字段支持前端加密后再提交,避免在明文信道中直接传递口令
  • 访问权限控制:管理员身份只认独立签发的管理会话,普通用户账号不继承任何后台权限
  • 入口分离:系统域名下的后台地址默认封堵,后台仅限局域网入口访问
  • 频率限制:登录连续输错与请求频率分别计数,避免正常操作被误锁
  • 隐私保护:客户与订单数据全部保存在本机,不向第三方同步;导出的共享目录可单独授权
安全机制与作用
机制解决的问题
scrypt 口令哈希数据文件被读取后无法直接还原口令
独立管理会话用户账号无法借道获得后台权限
CSRF 令牌阻断跨站伪造的管理端写操作
访问频率限制抑制口令爆破与接口刷取
人机验证降低脚本批量下单与刷券
支付风控阈值大额交易触发二次确认
安全日志与告警异常行为可回溯、可邮件通知

04 · 易用性

装好就能用,不需要先做运维

自托管产品最容易劝退人的地方,是安装之后还有一堆初始化工作。 TechShop 把这部分收进了向导:不建数据库、不写配置文件、不改环境变量。

→

安装后直达管理向导

管理员口令在 fnOS 安装向导里就设好了;首次打开进入的是站点名称、收款方式等内容配置,底部还有「全部跳过」可以直接进后台。

→

内置示例内容

预置商品分类与示例商品,先看到完整界面,再替换成自己的内容。

→

后台操作有反馈

保存、发信、测试连接等操作都有明确的成功或失败提示,不需要翻日志猜测结果。

→

忘记口令有恢复路径

通过 fnOS 登录态确认身份后可重置管理口令,不必重装应用或手改数据文件。


05 · 性能表现

轻量运行,I/O 可并行

应用本身是一个 Node 进程(未启用 cluster 多进程),前端由 fnOS 统一网关转发。 安装包 2.1 MB,不依赖外部数据库或缓存服务。 静态资源走白名单直接输出并启用 gzip 压缩, 后台与前台页面都做了首屏资源精简,避免被外部 CDN 同步阻塞。

它也并不是「完全单线程」的。从 1.0.029 起可以调节工作线程数(1–16,默认 4), 文件读写、加密与压缩都交给 Node 的线程池真正并行执行, 不再排在同一条队列里排队等待;相对上一版,I/O 与加密/压缩的并行度都有提升。 设备核数较多、商品与订单量较大时,收益更明显。

1.0.030 又把口令哈希从同步换成异步:在此之前,每次管理员登录或改密 都会把事件循环卡住约 100 ms,期间其它请求只能排队;现在这段计算不再挡住别人。

  • 文件 I/O、加密与压缩在线程池内并行,工作线程数可调 1–16
  • 与 fnOS 网关等系统服务共用一台设备,内存占用低
  • 启动即就绪,无需等待连接池或索引构建
  • 数据写入采用原子替换(先写临时文件再改名),异常中断不会留下半截文件
  • 数据文件按上限滚动裁剪,长期运行不会无限增长

边界说明:并发的是文件 I/O、加密与压缩这三类操作; JS 业务逻辑仍在单个事件循环上顺序处理 —— 这是 Node 自身的运行模型, 不是本项目的取舍。

资源占用概况
项目说明
安装包体积约 2.1 MB
运行时依赖Node.js 22
外部数据库不需要
外部缓存不需要
应用进程1 个 Node 进程(未启用 cluster)
请求入口fnOS 统一网关,经 Unix Socket 转发
工作线程数默认 4,可设 1–16
数据写入原子替换(临时文件 + 改名)
启动耗时秒级,启动后立即接受请求

06 · 生态兼容

按 fnOS 的规范来做集成

不是把一个 Web 应用丢进 NAS 就算完成适配。TechShop 按 fnOS 的应用规范实现了入口、 权限、数据目录与网关接入,尽量贴合系统本身的使用习惯。

系统集成

统一网关接入

可通过系统域名访问,并复用 NAS 登录态,无需在两处各维护一套账号。

文件管理器

共享目录直读

需要用户查看或导出的内容会声明为共享目录,在 fnOS 文件管理器中可直接打开。

应用生命周期

随系统启停

符合 fnOS 的应用生命周期约定,支持安装、升级、配置变更与卸载各阶段的回调处理。

邮件

多邮箱发件

支持配置多个发件邮箱并提供连接测试,订单通知与验证码按用途分开发送。

容器

标准 Compose 编排

不依赖私有编排格式,可直接接入既有的容器管理面板与镜像仓库。

备份

数据可自行搬走

数据目录结构清晰,复制目录即可完成迁移或离线备份,不绑定专有格式。


07 · 交易可靠性

金额由服务端算,过程留痕

订单金额、优惠抵扣与退款数额全部在服务端重新计算, 不采信客户端提交的价格与总额。储值、余额变动与优惠券核销都写入流水, 出问题时可以按订单逐笔核对。

  • 下单价格取自服务端商品数据,客户端改价无效
  • 优惠券校验归属与有效期;状态按下单锁定、支付核销三态流转,未付款的订单不会让券被永久占用
  • 余额、储值与退款均校验上下限,防止超额操作
  • 关键写操作带幂等键,降低重复提交造成的影响
  • 订单状态流转完整记录,从待付款到完成可逐步回溯
订单状态流转
待付款  →  已付款  →  处理中
                    ↓
                 已发货  →  已完成
                    ↓
              退款中  →  退款成功

看完了优势,下一步是把它跑起来

部署指南给出了 fnOS 应用包与 Docker 两种方式的完整步骤与系统要求。