Self-hosted parental control
Know they're safe.
Even when you're not there.
Safa pairs your child's Android phone with a private console on your own server. Live location, calls, messages, app activity and instant alerts — visible only to you.
- Private by design
- Runs on your server
- No third-party trackers
Capabilities
One console. Every signal.
Everything the child's phone reports lands in your dashboard — organized, timestamped and searchable.
Live location
On-demand GPS fixes with accuracy radius and full location history on a map.
Calls & messages
Complete incoming and outgoing call logs plus SMS sync with keyword scanning.
Camera watch
Silent snapshots on demand from either camera — captured without a shutter sound.
Keyword alerts
Custom keyword rules scan typed text and messages, raising instant severity-rated alerts.
App usage
Daily screen-time totals with per-app rankings to spot changes in habits.
Install alerts
Know the moment an app is installed or removed on the child's device.
File explorer
Browse, preview and manage files on the device storage — remotely.
Uninstall protection
Device Admin or Owner-mode guard blocks removal attempts and alerts you instantly.
How it works
Paired in under a minute.
One permanent pairing code links every device you need — no accounts to create on the phone, nothing for the child to configure.
Generate your pairing code
From your console's Link Devices page. It's permanent, reusable and yours alone — regenerate or set a custom one anytime.
Enter it in the child app
The Safa app on your child's Android phone pairs with your server over HTTPS — by code or a single QR scan.
Watch your dashboard
Location, calls, messages, app activity and alerts stream in — with instant notifications when something needs your attention.
Access is invite-only: console accounts are provisioned by your administrator. Sign in to get started.
Security
Private by architecture.
No cloud middleman, no shared tenancy. Your data lives on your server, protected end to end.
Hashed pairing codes
Codes are stored as one-way bcrypt hashes — never in plain text, and never displayed twice.
Hashed device tokens
Device API tokens are kept as SHA-256 hashes. Revoke instantly, restore without re-pairing.
Strict role isolation
Parents only ever see their own devices.
Brute-force protection
Pairing and device APIs are rate-limited, and weak or predictable pairing codes are rejected outright.
Fully self-hosted
Fonts, scripts and styles are served from your own server — no CDNs, no external trackers, zero third-party requests.
Hardened transport
HTTPS-only session cookies, strict security headers and optional certificate pinning from the child app.
FAQ
Questions, answered.
The things parents and admins ask most before turning Safa on.
No. The Android service wakes on events, batches uploads over Wi-Fi when possible and never keeps the GPS radio hot — location fixes happen on demand, not continuously.
Only the parent accounts linked to that device on your own server. There is no shared cloud tenancy — the database lives on hardware you control, and admins never browse child data from the platform panel.
The app runs quietly without notification icons, and uninstall protection (Device Admin or Owner mode) blocks removal attempts and raises an alert the moment one is tried.
Data collected while offline is queued on the phone and synced automatically the next time it reaches your server. The console shows a clear offline badge until then.
No. The child app only needs your pairing code once — there are no accounts, sign-ups or profiles on the device, and nothing for the child to configure.
Laws vary by country, but in most jurisdictions parents may monitor their own minor children's devices. Safa is built strictly for guardianship use — our Terms of Service require it, and you should always follow your local law.
Your child's safety shouldn't live
on someone else's server.
Safa runs entirely on infrastructure you control. Sign in to open your console.