核心用法
PrivateApp 是一个面向技术用户的个人 PWA 仪表板,采用 FastAPI + React/Vite 技术栈,支持插件化架构。用户通过 scripts/install.sh 一键完成环境初始化(Python 3.9+、Node.js 18+),服务以 systemd 用户服务或 macOS launchd 形式常驻运行。核心工作流包括:克隆仓库 → 配置 config.json → 启动服务 → 按需构建前端 → 开发/安装新应用插件。
显著优点
- 架构清晰:前后端分离,FastAPI 提供高性能异步 API,React SPA 实现流畅交互
- 插件生态:标准化目录结构(
app.json+backend/routes.py+frontend/),自动发现加载 - 原生推送:内置 VAPID Web Push,支持跨平台消息推送
- 自托管友好:systemd/launchd 集成、SQLite 单文件数据、无需 Docker 即可运行
- 移动端优化:CSS 变量深色模式、输入框防 iOS 缩放等细节完善
潜在局限
- 技术门槛高:需同时熟悉 Python 后端与 Node.js 前端构建流程
- 安全依赖手动配置:未内置 HTTPS、鉴权、CSP 等生产级安全策略
- 单用户设计:无多账户隔离,不适合家庭共享或团队场景
- 插件质量参差:社区生态尚处早期,缺乏审核机制
- 数据风险:SQLite 与文件浏览功能若配置不当可能导致目录遍历
适合人群
Linux/macOS 开发者、Homelab 爱好者、希望自建仪表板替代 Heimdall/Flame 的技术用户,以及学习 FastAPI + React 全栈开发的进阶学习者。
常规风险
- 默认监听
0.0.0.0若暴露公网且无 HTTPS,存在中间人攻击风险 - 文件浏览器
root: "~"配置过于宽泛,可能泄露敏感文件 - VAPID 私钥以明文存储于
~/.local/share/privateapp/,需确保目录权限严格 - 插件代码自动加载,恶意插件可执行任意 Python 代码