Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Personal PWA dashboard server with plugin apps. Use when: (1) installing or setting up PrivateApp, (2) starting/stopping/restarting the service, (3) building...
Personal PWA dashboard server with plugin apps. Use when: (1) installing or setting up PrivateApp, (2) starting/stopping/restarting the service, (3) building...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Personal PWA dashboard β FastAPI backend + React/Vite frontend with plugin apps.
# Clone and install (creates venv, builds frontends, sets up systemd/launchd) git clone https://github.com/camopel/PrivateApp.git ~/Workspace/PrivateApp cd ~/Workspace/PrivateApp bash scripts/install.sh [--port 8800] Copy scripts/config.example.json β scripts/config.json and edit: { "host": "0.0.0.0", "port": 8800, "data_dir": "~/.local/share/privateapp", "file_browser": { "root": "~" }, "push": { "vapid_email": "you@example.com" } }
# Linux (systemd user service) systemctl --user start privateapp systemctl --user stop privateapp systemctl --user restart privateapp systemctl --user status privateapp # macOS (launchd) launchctl load ~/Library/LaunchAgents/com.privateapp.server.plist launchctl unload ~/Library/LaunchAgents/com.privateapp.server.plist # Manual .venv/bin/python3 scripts/server.py --host 127.0.0.1 --port 8800
After any frontend change, rebuild: # Build shell (home screen) cd frontend && npm run build # Build all app frontends for app_dir in apps/*/frontend; do [ -f "$app_dir/package.json" ] && (cd "$app_dir" && npm install && npm run build) done # Or use the install script which builds everything bash scripts/install.sh Then restart the service.
AppShortcodeDescriptionπ SystemsysmonCPU, RAM, disk, GPU stats and service healthπ FilesfilesBrowse, preview, and share files
Create apps/{app-id}/ with: app.json β metadata (id, name, shortcode, icon, description) backend/routes.py β FastAPI router (mounted at /api/app/{shortcode}/) frontend/ β React SPA (Vite, builds to frontend/dist/) Shortcode must be unique. The app loader auto-discovers on startup. See the existing apps for reference patterns. Key conventions: All routes async def, return plain dicts Frontend uses CSS custom properties for dark mode Input font-size β₯ 16px (prevents iOS auto-zoom) Every app has a back button linking to /
Apps can send push via commons.push_client: from commons.push_client import send_push await send_push(title="Alert", body="Something happened", url="/app/my-app/")
~/.local/share/privateapp/ βββ privateapp.db # Settings, preferences, push subscriptions βββ vapid_private.pem # VAPID signing key βββ vapid_public.txt # VAPID public key
GET /api/apps β list installed apps GET /api/settings/preferences β get preferences (timezone, language, app_order) POST /api/settings/preferences β save preferences POST /api/push/send β send push notification GET /api/push/test β test push
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.