核心用法
PrivateApp 是一款面向技术用户的个人 PWA 仪表板服务器,采用 FastAPI + React/Vite 技术栈,支持插件化应用扩展。核心使用场景包括:
1. 部署与初始化:通过 bash scripts/install.sh 一键安装,自动创建 Python venv、构建前端、配置 systemd/launchd 服务
2. 服务生命周期管理:支持 systemctl --user 或 launchctl 启停控制,也可手动运行开发服务器
3. 前端构建流程:修改代码后需执行 npm run build 重建 Shell 及各应用前端,随后重启服务生效
4. 插件开发:在 apps/{app-id}/ 目录下创建 app.json + backend/routes.py + frontend/,遵循 async API、CSS 变量主题、16px 输入防缩放等规范
5. 推送通知:集成 VAPID 协议,通过 commons.push_client 向订阅端点发送 Web Push
显著优点
- 完全私有化:数据存储于本地
~/.local/share/privateapp/,无第三方云服务依赖 - 渐进式 Web 应用:支持安装到主屏幕、离线缓存、原生推送体验
- 模块化架构:内置系统监控 (
sysmon) 和文件浏览器 (files),可按需扩展 - 跨平台服务管理:原生适配 Linux systemd 与 macOS launchd
- 现代技术栈:FastAPI 提供高性能异步 API,Vite 实现快速前端构建
潜在缺点与局限性
- 技术门槛较高:需熟悉 Python 异步开发、Node.js 构建流程、systemd/launchd 配置
- 手动维护负担:前端更新后必须手动重建并重启服务,无热更新机制
- 生态局限:目前仅内置两款应用,第三方插件生态尚未成熟
- 安全责任自负:默认监听
0.0.0.0时暴露于网络,需自行配置防火墙与 HTTPS - 无内置认证:
SKILL.md未提及用户登录或权限系统,公网部署存在未授权访问风险
适合人群
- 具备 Linux/macOS 运维能力的开发者与技术爱好者
- 希望自建本地服务中枢、替代 Cloudflare/Notion 等 SaaS 的隐私敏感用户
- 需要定制化仪表盘、愿意编写 FastAPI/React 插件的进阶用户
常规风险
| 风险类别 | 说明 |
|---------|------|
| 网络安全 | 默认配置可能暴露端口,建议配合反向代理(Nginx/Caddy)+ HTTPS 使用 |
| 数据安全 | SQLite 数据库与 VAPID 私钥明文存储,需确保文件系统权限正确(`chmod 600`) |
| 依赖风险 | Node.js 与 Python 依赖需定期更新,防范供应链攻击 |
| 推送服务 | VAPID 密钥泄露可导致恶意推送,建议限制订阅端点域名 |
| 插件安全 | 第三方插件执行任意 Python/JS 代码,安装前需审计源码 |
> 来源评估:GitHub 开源项目(camopel/PrivateApp),属个人开发者作品,代码透明度中等,需自行承担维护责任。