March 12, 20267 min read

How to Monitor Your Home Server from Your iPhone

A lot of developers have something running at home. A Raspberry Pi. A NAS with Plex or Jellyfin on it. An old PC running a stack of Docker containers. Self-hosted Nextcloud or Home Assistant. Whatever it is, it's running 24/7, and at some point it'll need attention when you're not home.

The disk fills up. A container crashes. The backup job you set up three months ago silently fails. Or maybe nothing is wrong. You just want to know if that long-running download finished before you get back.

Here's how to check on your home server from your iPhone, without setting up a VPN or punching holes in your firewall.

Two Ways to Do This

There are two approaches to getting terminal access to your home server from your phone.

The first is to SSH directly from your iPhone to the server. This requires your server to be reachable from the internet, which means port forwarding on your home router, or running a VPN tunnel like Tailscale or WireGuard. Both of those work, but they're infrastructure you have to set up and maintain.

The second is to connect to your Mac first, and then SSH from your Mac to the server. Your Mac is probably already on the same local network as your home server. It likely already has SSH keys configured for it. You don't need to expose the server to the internet at all.

This post focuses on the second approach, using Macky to reach your Mac, and your Mac to reach the server. It's less to set up, and it reuses access you probably already have.

The Setup

First, confirm you can SSH into your server from your Mac. If you've done it before, it should still work:

ssh pi@192.168.1.100

Replace the IP and username with your actual server details. A local IP works fine here because your Mac and your server are on the same network. Even when you're connecting to your Mac from outside, your Mac can still reach the server at its local address.

Then install Macky. Download the Mac host from macky.dev, install the iPhone app from the App Store, and sign in on both with the same account. That's the new infrastructure. Now from anywhere, you open Macky on your iPhone, connect to your Mac, and SSH into your server just like you would from your desk.

What to Check When You Connect

Disk space

The most common home server problem. Plex transcodes, Docker image layers, and backup archives quietly fill drives. Check it first:

df -h

That shows all mount points and their usage. Anything over 85% is worth cleaning up before it becomes a problem.

Service status

On a Linux server with systemd, check whether a specific service is running:

systemctl status plex

To check several at once:

systemctl status plex nginx postgresql

If something is down, restart it:

sudo systemctl restart plex

Docker containers

See what's running:

docker ps

Include stopped containers to see anything that exited unexpectedly:

docker ps -a

If a container stopped, check its logs:

docker logs --tail 50 my-container-name

Restart it:

docker restart my-container-name

Live logs

When something is actively misbehaving and you want to watch what's happening in real time:

tail -f /var/log/syslog

Or for a specific app log:

tail -f /var/log/nginx/error.log

Macky has a Ctrl key in the keyboard toolbar. Hit Ctrl+C to stop following.

System load

Quick snapshot of CPU and memory:

uptime && free -h

Set Up a Status Alias on Your Mac

Typing long commands on a phone keyboard is annoying. The best optimization is to create a shell alias on your Mac that SSHes into the server and runs everything you care about in one shot.

Add this to your ~/.zshrc on your Mac:

alias server-status='ssh pi@192.168.1.100 "echo === DISK === && df -h && echo === DOCKER === && docker ps && echo === MEMORY === && free -h && echo === UPTIME === && uptime"'

Then load it:

source ~/.zshrc

Now from Macky on your iPhone, one short command gets you a complete status report:

server-status

Disk usage, container status, memory, uptime. Takes a few seconds to run. If you have multiple machines, create an alias for each one. nas-status, pi-status, whatever fits your setup.

Keeping Your Mac Reachable

For this whole thing to work, your Mac needs to be on and awake when you're away from home. Macky's host app runs in the background, but it can't prevent the Mac from sleeping.

The easiest solution is to turn off sleep in System Settings under Energy Saver. Set it to never sleep when on power. If you'd rather not change system settings permanently, Amphetamine can handle this. Set it to run indefinitely and it'll keep the Mac awake as long as it's running.

The Mac host app itself is lightweight. It won't interfere with whatever else the Mac is doing.

A Realistic Scenario

You're at work. Your Plex remote app shows an error. You open Macky, connect to your Mac, and run server-status. Disk is fine, containers are running. You SSH directly in and check the Plex logs:

docker logs --tail 100 plex | grep -i error

You spot a transcoding error related to a codec. You restart the container, it clears up, and streaming works again. You didn't need a VPN. You didn't need SSH keys on your phone. You didn't need to set up port forwarding. Your Mac was already reachable via Macky, and your Mac already had access to the server.

That's the practical point here. You're not building a monitoring stack. You're just keeping a terminal within reach so you can handle problems when they come up, without needing to be home.

Try Macky

Connect to your Mac terminal from your iPhone. Free to start, no configuration required.