Privacy Policy
Moonraker Buddy (the “app”) is an iOS client that connects directly to 3D printers running Moonraker on your own local network. This policy explains exactly what data the app handles, where it goes, and what it does not do.
Summary
- The app does not collect, sell, or share personal data with advertisers.
- The app contains no analytics SDKs, no tracking, and no advertising identifiers.
- Printer connection details and print history stay on your device.
- If you enable OctoEverywhere remote access, your printer traffic is relayed through OctoEverywhere’s servers so you can reach your printer away from home (see below).
- If you enable the optional Remote Push notifications, print-event data is relayed via OctoEverywhere and Google Firebase to deliver alerts — and to drive Live Activities — even when the app is closed (see below).
- Aside from OctoEverywhere (if you enable it), data leaves your device only if you (a) voluntarily submit the in-app feedback form, or (b) make a purchase through the App Store.
Information the App Stores on Your Device
To talk to your printer, the app stores the following on your device only:
- Printer configuration — printer name, IP address or hostname, port, and group label, stored in the iOS user defaults database.
- Authentication credentials — Moonraker API keys, JWT access/refresh tokens when you sign in with a username and password, and — if you link OctoEverywhere — your OctoEverywhere connection tokens, all stored in the iOS Keychain.
- Print history snapshots — cached print state used to power Live Activities, background refresh, and notifications.
- Preferences — settings such as Live Activity toggles and notification preferences.
This data never leaves the device unless iCloud Backup is enabled in iOS, in which case it is included in your encrypted device backup as managed by Apple.
Communication With Your Printer
The app sends requests directly from your iPhone or iPad to the IP address you configured for your printer, typically over your local network. It uses the Moonraker HTTP and WebSocket APIs and, when configured, the printer’s MJPEG webcam stream. When you connect directly like this, the developer and any third parties have no visibility into this traffic. The exception is when you enable OctoEverywhere remote access, described below.
Remote Access via OctoEverywhere
Moonraker Buddy can optionally connect to your printer when you are away from home using OctoEverywhere, a third-party relay service. This feature is off by default and is only active if you link your OctoEverywhere account from the app’s Remote Access settings.
When OctoEverywhere is enabled and your printer is not reachable on your local network, the app routes its Moonraker requests, WebSocket connection, webcam stream, and print thumbnails through OctoEverywhere’s servers, which relay them to your printer. This means that traffic passes through OctoEverywhere’s infrastructure rather than going directly to your printer. The app always prefers a direct local connection whenever your printer is reachable on your network.
Linking is performed through OctoEverywhere’s own sign-in page, shown in a secure in-app browser; the app never sees your OctoEverywhere password. The connection tokens returned to the app are stored in the iOS Keychain and can be removed at any time by unlinking the printer in Remote Access settings. OctoEverywhere’s handling of your data is governed by their privacy policy at octoeverywhere.com/privacy.
Notifications and Live Activities
If you enable notifications, the app uses Apple’s local notification system to alert you about print events (completion, errors, temperature shutdowns, etc.) based on data fetched from your printer. Live Activities started while the app is open or running in the background use this same on-device data. Notifications and Live Activities generated this way are produced locally on your device and are not sent through any third-party push service.
Notification and Live Activity preferences are set per printer and stored on your device. The separate, optional Remote Push feature below uses a relay to deliver alerts — and to start and update Live Activities — when the app is fully closed.
Remote Push Notifications (Optional)
For printers linked to OctoEverywhere, you can optionally enable Remote Push so you receive alerts — and so your Live Activity keeps updating — even when the app is fully closed. This feature is off by default and is enabled per printer in Settings. It requires an OctoEverywhere Supporter subscription.
When you turn it on, the app registers a notification webhook with OctoEverywhere for that printer and chooses which event types to receive. OctoEverywhere then sends print-event webhooks to a small relay the developer operates on Google Firebase (Cloud Functions and Firestore, hosted in the EU). The relay delivers a notification to your device through Firebase Cloud Messaging and Apple’s Push Notification service, and starts or updates Live Activities directly through Apple’s Push Notification service.
The print-event data OctoEverywhere includes in each webhook — and which therefore passes through the relay — may include the printer name, file name, print progress, layer numbers, estimated time remaining, error messages, and temporary snapshot / quick-view links. This data is used only to build and deliver the notification or Live Activity update.
To deliver pushes, the relay stores the following in Firestore, keyed by a random identifier generated on your device (it is shown in the app under Notifications as your “Subscriber ID” for support). No account, email, or personal identity is collected:
- your device’s push tokens (the Firebase Cloud Messaging token and the Apple Live Activity tokens used to start/update activities);
- the printers you enabled and the notification event types you selected for each;
- the printer name and OctoEverywhere printer identifier learned from incoming events, used to route alerts to the right printer; and
- a short per-event delivery log (event type, outcome, and counts) used for reliability and support.
This data is retained only as needed to deliver notifications: push tokens expire automatically (around 90 days unless refreshed by the app), Live Activity state after about 2 days, and delivery logs after about 14 days. If you contact support about delivery problems, the developer can temporarily enable capture of the full webhook payloads for your Subscriber ID to diagnose the issue; this is off by default and any captured payloads are automatically deleted after about 7 days.
Turning Remote Push off, or unlinking the printer, clears the OctoEverywhere webhook and removes your tokens from the relay; stale tokens are also deleted automatically. Google’s handling of this data is governed by the Firebase privacy policy; OctoEverywhere’s by octoeverywhere.com/privacy.
Background Refresh
If you enable Background App Refresh, iOS may wake the app periodically so it can poll your printer for state changes and update Live Activities or trigger local notifications. This polling only contacts your printer’s address.
In-App Help Content
The app fetches its help content (the FAQ and linked help articles) over HTTPS from the developer’s Firebase server so it can be kept up to date, falling back to content bundled in the app when offline. These requests retrieve content only — they contain no personal data and no information about you or your printers.
Optional Feedback Form
The app includes an optional feedback form. If you choose to submit it, the message is sent over HTTPS to Resend (resend.com), which delivers it as an email to the developer. The following fields are transmitted:
- Any name you enter (optional).
- Any email address you enter (optional, used only so the developer can reply).
- The message text you enter.
- The app version and build number.
If you do not use the feedback form, no message data is ever transmitted. See Resend’s privacy policy at resend.com/legal/privacy-policy.
Purchases
In-app purchases are handled entirely by Apple’s StoreKit. The app does not see your payment details. Apple’s privacy policy applies to those transactions: apple.com/legal/privacy.
What the App Does Not Do
- It does not include third-party analytics or crash reporting SDKs.
- It does not use the Advertising Identifier (IDFA) and does not request App Tracking Transparency permission.
- It does not read your contacts, photos, calendar, location, or microphone.
- It does not sell, rent, or share data with advertisers, data brokers, or any other third party.
Children
The app is not directed at children under 13 and does not knowingly collect data from them.
Data Retention and Deletion
All on-device data is removed when you delete the app from your device. Feedback emails you have voluntarily sent are retained in the developer’s mailbox for support purposes; you may request deletion at any time via the in-app feedback form.
Your Rights
If you are in the UK, EU, or another region with data protection laws (UK GDPR, GDPR, CCPA, etc.), you have the right to request access to, correction of, or deletion of any personal data the developer holds about you. Because the app collects no personal data on its own, such requests will typically only relate to feedback emails you have sent.
Changes to This Policy
If this policy changes materially, the updated version will be published at the same URL with a revised “Last updated” date.
Contact
Questions or requests about this policy can be sent using the feedback form inside the app (Settings › Support › Send Feedback).