Skip to content

Instantly share code, notes, and snippets.

@nickzimmermann
Created June 24, 2026 17:05
Show Gist options
  • Select an option

  • Save nickzimmermann/59de88758484278b44881bde2030aa39 to your computer and use it in GitHub Desktop.

Select an option

Save nickzimmermann/59de88758484278b44881bde2030aa39 to your computer and use it in GitHub Desktop.
Privacy Policy Server Button App

Privacy Policy — Server Button

Last updated: 2026-06-25

Server Button is a personal SSH client for iOS published by Nick Zimmermann. It is designed around a single principle: your server credentials and activity never leave your device.


1. Data we collect

None.

Server Button has no analytics, no telemetry, no crash reporters, no advertising SDKs, no third-party trackers and no remote login. We do not collect any personal information about you, and the app does not maintain any account on our side.

2. Data the app stores on your device

The app stores the following data locally on your iPhone or iPad only:

  • Server configurations (name, host, port, username, auth method, auto-connect / keep-alive flags) — in the app's UserDefaults.
  • Command button definitions (label, command, working directory, icon, colour, confirmation / biometric flags) — in UserDefaults.
  • Command history logs (button label, command, server name, output, success / failure, timestamp) — in UserDefaults, subject to the retention picker in Settings.
  • SSH host fingerprints (the SHA-256 fingerprint of each server's public host key, used for Trust-On-First-Use validation) — in UserDefaults.
  • App preferences (appearance, auto-lock timing, connection timeout, biometric lock setting) — in UserDefaults.
  • Credentials — passwords, SSH private keys and SSH key passphrases are stored in the iOS Keychain with the kSecAttrAccessibleWhenUnlocked attribute and iCloud Keychain synchronisation disabled. They can only be read while the device is unlocked.

What happens to your data in each scenario:

Action Servers, Buttons, Logs (UserDefaults) Credentials (Keychain)
iOS version upgrade Preserved Preserved
App update from the App Store Preserved Preserved
Migration to a new device via iCloud Backup or Direct Transfer Migrated Migrated
Delete the app and reinstall it Wiped by iOS Effectively unavailable — Keychain entries technically persist but the app no longer has the references that point to them

Updates never cause data loss. Only an explicit delete-and-reinstall removes the day-to-day data.

3. Data the app transmits

The app opens SSH connections directly from your device to the servers you configure. No traffic is routed through any intermediary controlled by us. SSH is end-to-end encrypted; only your server can decrypt it.

The Trust-On-First-Use mechanism remembers each server's host fingerprint on first connection and verifies it on subsequent connections. A mismatch surfaces an error so you can react to either a legitimate server rebuild or a man-in-the-middle attempt.

4. Third-party SDKs

Server Button uses the following open-source Swift libraries to implement SSH:

These libraries run inside the app on your device. They do not phone home and they do not collect data about you.

5. iCloud, backup and migration to a new device

The app does not continuously sync data via iCloud Keychain to other devices. Standard iOS device backups (encrypted iCloud Backup or encrypted Finder / iTunes backup) include the app's UserDefaults and Keychain entries like any other app. The backup itself is end-to-end encrypted with your Apple ID and device passcode; Apple cannot read it.

This means: when you migrate to a new iPhone via "Restore from iCloud Backup" or "Transfer Directly from iPhone", your saved servers, button definitions, logs and credentials are restored together with the app. If you never enable iCloud Backup, no backup copy of the data exists.

6. Children

The app is not directed at children under 13 and does not knowingly collect any data about them — or, indeed, anyone.

7. Your rights

Because we don't collect or store any data on our side, there is nothing on a server for us to access, export or delete. You retain full control over the data your device holds through the standard iOS interface (delete servers, clear logs, uninstall the app).

8. Changes to this policy

If we ever change what the app collects (which we don't plan to), an updated version of this document will be published at the URL below and the in-app version reference will change accordingly.

9. Contact

Questions about this policy can be sent to:

contact@nick-zimmermann.com


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment