EgoGaze is a sleek, elegant, and fully self-hosted personal digital portrait system. It mirrors your phone's physical state to a web interface in real-time, including battery level, location, step count, app usage duration, and music playback.
self-hosted android phone-status status-dashboard real-time usage-stats battery-monitor location-tracking step-counter docker cloudflare-workers
- Access: https://status.dwill.top
| PC Browser View | Mobile Browser View |
|---|---|
![]() |
![]() |
| Status Sync App | Real-time Data Detail |
|---|---|
![]() |
![]() |
- 🚀 Real-time Sync: Millisecond-level reporting latency with automatic web refresh (304 optimized).
- 📊 Precise Stats: A re-implemented "Today's Usage Duration" algorithm based on Android
UsageEvents, completely eliminating data drift. - 🎵 Media Awareness: Real-time display of currently playing song titles and artists.
- 🔋 Status Tracking: Battery percentage, charging status, device temperature, and memory usage.
- 🛡️ Privacy First: Fully self-hosted, data flows only between your private server and phone.
Recommended for NAS or 24/7 PCs.
- Quick Start:
cd phone-status/self-hosted docker-compose up -d --build - Config: Default runs on port
9529. Click for detailed proxy and config guide.
The source of all data. Must be correctly configured.
- Build from Source:
- Open
phone-status/androidin Android Studio. - Select
selfhostedDebugin theBuild Variantspanel. - Build and install the APK.
- Open
- Initial Setup:
- Open App, enter your API URL (e.g.,
https://status.dwill.top/api/update). - Enter API Key (default in
docker-compose.yml). - [Important] Permissions: Grant "Ignore Battery Optimization", "Usage Access", and "Notification Listener".
- Tap [Start Service].
- Open App, enter your API URL (e.g.,
- Android Stay-Alive & Pitfalls Guide
For users without a public IP. Cloudflare Deployment Guide.
- Android: Tested on Vivo (Android 14 / OriginOS).
- Server: Node.js 18+ (TypeScript).
Distributed under the MIT License. See LICENSE for more information.



