Last updated: 2026-04-24
MyPi Companion is an iOS/iPadOS client for MyPi, a self-hosted Pi-hole aggregation server. This document describes what the app stores, what it doesn’t, and why.
Keychain (iOS Keychain, kSecAttrAccessibleWhenUnlocked, scoped to this app bundle):
Caches directory (~/Library/Caches/net.myssdomain.mypi/, standard iOS file protection):
Documents directory (Documents/sites.json):
UserDefaults (fallback only):
UserDefaults for API keys and cert fingerprints to stay usable for local testing. On properly signed device installs this fallback is never used.MyPi Companion talks to one destination: the MyPi server URL(s) you configure. Every request goes over HTTPS, with the API key attached in the X-API-Key header. Info.plist enforces App Transport Security (NSAllowsArbitraryLoads = false), so plain HTTP is rejected by iOS.
Self-signed certificates are opt-in per site; when enabled, the app pins the first certificate it sees (trust-on-first-use) and rejects any subsequent certificate whose SHA-256 fingerprint doesn’t match the pin.
None. The app has no third-party SDKs, no analytics framework, no crash reporter, no advertising identifier access. The only party that receives any data is the MyPi server you’ve configured, which you operate yourself.
MyPi Companion is not directed at children and does not knowingly collect data from anyone — adult or otherwise.
If this policy is ever updated, the new version will appear at the same URL with a new “Last updated” date.
Questions or concerns can be filed as issues on the GitHub repository.