Files
Frpilot/docs/数据目录说明.md
Yuhang Wu ec644e5434 feat: 按安装目录隔离存储应用数据,实现多实例独立运行
新增 StoragePaths 模块,将数据库、设置、frp 版本等业务数据统一保存在应用实际安装位置,避免不同实例或版本间数据混淆。新增 Preferences 模块管理安装目录内的持久化设置,重构数据库初始化逻辑,修改 Frpc 运行目录、frp 版本存储路径,新增数据目录锁机制防止多进程冲突,同时更新文档说明数据目录规则与平台差异。
2026-10-26 14:16:18 +08:00

3.0 KiB

数据目录说明

FrpcPilot 以实际安装位置保存业务数据。安装目录中没有数据库或设置文件时,直接创建空数据库并使用默认设置。旧版系统应用数据目录中的文件不会被读取、复制或删除,需要使用的服务器与隧道请在新版中重新配置。

Windows 目录示例

安装在 D:\software\FrpcPilot 时:

D:\software\FrpcPilot\
├── frpcpilot.exe
├── data\
│   ├── frpcpilot.db       # 服务器、隧道、frp 记录
│   ├── preferences.json  # 语言、外观、关闭行为等设置
│   └── storage.lock      # 防止多个进程同时使用数据目录
├── frp\versions\         # 各版本压缩包、解压文件和导入的程序
├── run\frpc.toml         # 启动穿透时根据数据库重新生成
├── webview\              # Windows / Linux 浏览器数据与缓存
├── cache\                # 应用缓存
├── logs\                 # 应用日志目录
└── tmp\                  # 应用与更新器使用的临时目录

SQLite 的 journal / WAL / SHM 文件随数据库保存在 data 中。frpc 的工作目录是 run,相对路径的运行产物留在这里;实时日志仍输出到界面,不额外保存日志文件。导入的 frpc / frps 会复制到安装目录,原文件不修改。

各平台位置

平台 数据根目录
Windows frpcpilot.exe 所在目录
macOS .app .app 同级的 FrpcPilot-data
Linux AppImage APPIMAGE 指向的实际文件所在目录
Linux 普通二进制 / deb 实际可执行文件所在目录

macOS 使用应用包同级目录,避免破坏签名或在更新器替换应用包时丢失数据。AppImage 的临时只读挂载目录不会用于存储业务数据。开发构建使用可执行文件旁的 FrpcPilot-dev,与正式版配置隔离。

安装目录必须允许当前用户写入。Windows Program Files、macOS /Applications、Linux deb 默认的 /usr/bin 等位置可能不可写,此时应用会显示错误并停止,不回退到系统默认的应用数据目录。建议使用当前用户可写的专用安装文件夹;Linux 推荐将 AppImage 放在自己的应用目录。

macOS WKWebView 不支持任意指定持久化目录,其系统管理的浏览器缓存仍可能写入用户 Library;应用设置保存在 data/preferences.json。操作系统、WebView 运行时安装、崩溃报告以及系统安装器自身生成的文件,也不能保证完全避开系统盘。

备份与安装位置变更

备份当前数据时,先退出软件,再备份整个安装目录;macOS 需要备份同级的 FrpcPilot-data。数据库和 run/frpc.toml 含认证信息,请按私密文件保存。

程序不自动修正安装位置变更前保存的 frp 绝对路径。移动安装目录后,如原路径失效,请重新下载或导入 frpc。不同操作系统的二进制不兼容,需要使用目标平台的 frpc。