PocketTop Support

Last updated: April 18, 2026

PocketTop is an iOS app for monitoring and acting on Linux machines you control. This page covers setup, common issues, and how to file a bug.

Quick start

  1. On your iPhone or iPad, open PocketTop and tap + on the home screen.
  2. Enter the SSH host (IP or hostname), port (22 by default), and username.
  3. Choose password or SSH key authentication. For key auth, PocketTop shows you a public key to add to ~/.ssh/authorized_keys on the target machine.
  4. Confirm the host-key fingerprint shown by the app matches the fingerprint of your server (you can check with ssh-keyscan -t ed25519 your-host | ssh-keygen -lf -).
  5. Watch the install stream. PocketTop uploads a small Go binary, runs the installer (which needs sudo for this one step), and captures an API key and TLS fingerprint when the agent comes up.
  6. Tap the new tile on the home screen to see live metrics.

Your machine needs:

Common issues

"Could not connect to host" during setup

Your iPhone cannot reach the host's SSH port. Check from another device on the same network:

ssh -p 22 user@your-host

If that fails too, the issue is on the network side (firewall, wrong IP, SSH not running). If it succeeds, double-check the host/port you typed in PocketTop, and confirm your phone is on a network that can reach that host.

"Authentication failed" with SSH key

PocketTop uses an Ed25519 keypair stored in your iOS Keychain. The setup screen shows you the matching public key — paste it into ~/.ssh/authorized_keys on the target server (one line, exactly as shown, no extra newlines). Re-try the setup. The same key is reused across all servers you add.

The host-key fingerprint changed

The app refuses the connection if the server's SSH host key doesn't match what was pinned at setup. Either the server was rebuilt, you are connecting to a different machine at the same address, or something is wrong. If the change is expected, remove and re-add the host in PocketTop. If it is not expected, do not connect — investigate first.

The installer fails part-way through

The install runs detached on the server (under systemd-run) so it survives the SSH connection dropping. Check the install log on the server:

sudo journalctl -u run-* | tail -200
sudo cat /var/log/pockettop-install.log   # if present

Most failures are: wrong sudo password, the chosen TCP port is already bound, the server has no openssl available to generate the self-signed cert, or there is no internet access on the server (rare — install is fully offline-capable, but some distros need a one-time package-manager refresh for utilities like curl).

The agent is reachable over HTTPS but the app shows no data

On the server:

sudo systemctl status pockettopd
sudo journalctl -u pockettopd -n 200 --no-pager

The service should be active (running). From a machine on the same network as the server you can sanity-check the API:

curl -k https://your-host:443/health

Expect 200 OK. If you see connection refused, the service crashed. If you see certificate-related errors, something on the server regenerated the cert — remove and re-add the host in PocketTop so the app can pin the new fingerprint.

"Kill" doesn't terminate a process

The agent runs as root. It sends SIGTERM first, waits briefly, then SIGKILL. If the process still won't die, it is a kernel-level uninterruptible wait (D-state) — usually a stuck I/O. The fix is on the server side, not in the app.

Local network connections fail with "operation not permitted"

iOS requires explicit permission to connect to private (RFC 1918) and link-local addresses. The first time PocketTop tries this, iOS shows a permission prompt. If you tapped Don't Allow, open Settings → Privacy & Security → Local Network → PocketTop and turn it on.

Removing a host doesn't remove the agent on the server

Correct — by design. Removing the host in the app deletes credentials and pinning from your device, but the pockettopd service keeps running on the server. To uninstall the agent, on the server:

sudo systemctl disable --now pockettopd
sudo rm -rf /opt/pockettop /etc/systemd/system/pockettopd.service
sudo systemctl daemon-reload

How to file a bug or feature request

Please file issues on GitHub: github.com/bardiabarabadi/PocketTop/issues.

Useful info to include:

Privacy

See the privacy policy. Short version: PocketTop has no backend; the app talks only to the machines you point it at; we collect nothing.

Source code

PocketTop is open source under GPL-3.0: github.com/bardiabarabadi/PocketTop.