Private Web App (PWA)

🖥️ 自托管 PWA 仪表板,插件随心扩展

自托管个人 PWA 仪表板,支持插件扩展,需 Python 3.9+ 与 Node.js 18+,适合开发者构建私有云控制台

收藏
4.8k
安装
1.3k
版本
1.0.1
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

PrivateApp 是一款面向开发者的个人 PWA(Progressive Web App)仪表板系统,采用 FastAPI 后端 + React/Vite 前端架构,支持插件化扩展。用户通过 scripts/install.sh 一键部署,可选择 systemd(Linux)或 launchd(macOS)作为服务管理,也可手动启动。安装后需复制配置文件并调整端口、数据目录、VAPID 推送邮箱等参数。

服务启动后,系统暴露 RESTful API,内置应用包括系统监控(sysmon)与文件浏览器(files)。开发者可通过创建 apps/{app-id}/ 目录快速添加自定义插件,需遵循 app.json 元数据规范、FastAPI 异步路由约定及前端构建流程。任何前端变更后需重新构建并重启服务。

推送通知功能依赖 VAPID 密钥,通过 commons.push_client 模块调用。数据存储位于用户本地目录 ~/.local/share/privateapp/,包含 SQLite 数据库与密钥文件。

显著优点

1. 自托管与隐私优先:完全本地运行,数据不出机器,适合敏感场景
2. 插件架构灵活:约定优于配置,新增应用只需遵循目录结构与 API 规范

3. 现代技术栈:FastAPI 提供高性能异步接口,React/Vite 确保前端开发体验

4. 跨平台服务管理:原生支持 systemd 与 launchd,降低运维门槛

5. PWA 特性:可安装为原生应用体验,支持离线能力与推送通知

潜在缺点与局限性

1. 技术门槛较高:需同时掌握 Python 后端与 Node.js 前端构建流程
2. 无内置权限系统:所有访问默认开放,需自行在反向代理层补充认证

3. 插件生态空白:目前仅内置两个基础应用,第三方插件稀缺

4. 构建依赖重:前端变更需完整 rebuild,开发迭代效率受限

5. 文档简略:关键安全配置(如 VAPID、网络绑定)缺乏详细说明

适合人群

  • 具备全栈开发能力的个人开发者
  • 需要私有化仪表盘的技术爱好者
  • 熟悉 systemd/launchd 服务管理的 Linux/macOS 用户
  • 愿意自行维护插件生态的早期采用者

常规风险

  • 网络暴露风险:默认绑定 0.0.0.0 且缺乏认证,公网部署易被未授权访问
  • 推送密钥泄露:VAPID 私钥以明文存储于本地,权限不当可能导致伪造推送
  • 构建时依赖漏洞:Node.js 与 Python 依赖包未锁定版本,存在供应链攻击面
  • 数据备份缺失:SQLite 与文件浏览器直接操作用户目录,无自动备份机制
  • 系统服务权限:install.sh 修改用户级 systemd/launchd 配置,误操作可能影响系统稳定性

Private Web App (PWA) 内容

apps文件夹
file-browser文件夹
backend文件夹
frontend文件夹
src文件夹
system-monitor文件夹
backend文件夹
frontend文件夹
src文件夹
frontend文件夹
public文件夹
src文件夹
pages文件夹
scripts文件夹
commons文件夹
手动下载zip · 103.2 kB
routes.pytext/plain
请选择文件