Watch your DigitalOcean droplets from your iPhone
A droplet is a Linux-based virtual machine on DigitalOcean, and a powered-off droplet is still billed until it is destroyed. Duskwatch is an independent iPhone app for DigitalOcean, in development; it shows the state and metrics of every droplet, explains what looks wrong, sends a push when one goes off, and lets you reboot or power cycle it behind a swipe and Face ID.
Updated
Status and metrics at a glance
Every droplet in the team appears with its state in words and a symbol, never colour alone: Active, Off, or busy with an action, such as Rebooting. Open one and you see its region, size, recent actions, network and cost, with charts for CPU, memory, disk, bandwidth and load over 1 h, 6 h, 24 h or 7 days.
Some of those charts depend on what runs inside the droplet. When the metrics agent is missing, the screen says so in plain words, for example "CPU, memory, disk and load need DigitalOcean's metrics agent on web-01. Only bandwidth works without it."
Default droplet graphs need nothing on the droplet. The CPU, load average and memory graphs need DigitalOcean's metrics agent, a small utility that runs on the droplet.
DigitalOcean docs: track droplet performance (external link), verified
Monitoring alert policies notify by email, Slack, or both.
DigitalOcean docs: manage alert policies (external link), verified
Findings: what looks wrong, and why
A status tells you a droplet is running. A finding tells you what is wrong with it anyway, with the evidence and a next step. The droplet screen lists them at the top, and tapping one scrolls to the section it is about.
| Finding | What it means | Next step the app suggests |
|---|---|---|
| Disk full in ~5 days at this rate | The root filesystem is filling at a steady pace | Free up space, or resize the disk or volume |
| SSH is open to the internet | The cloud firewall allows port 22 from any address | Limit port 22 to your IP in the firewall |
| No cloud firewall | Every port web-01 listens on is reachable, unless its own firewall filters it | Attach a cloud firewall in DigitalOcean |
| Off, still billed | web-02 is powered off but keeps costing money | If you no longer need it, snapshot it and destroy it in DigitalOcean |
| No metrics for 20 min | DigitalOcean still says Active, but the metrics agent stopped reporting | Open the console in DigitalOcean, or add an uptime check |
| Restarted 3× in 24 h | Something keeps crashing it, or someone keeps restarting it | Check the recent actions and the droplet's logs |
| No restore point | Backups are off and there are no snapshots of this droplet | Turn on backups or take a snapshot in DigitalOcean |
When a droplet goes off
If you turn on alerts, a push reaches your iPhone when a droplet goes off without a power action from your team, or disappears from the team, and another when it is back. The push names the droplet and the team, so you know which client or project it is before you unlock the phone. When nobody in the team ran a power action, the droplet screen adds "Went off unexpectedly".
"web-01 is off" · acme-prod · Off since 02:14.
"web-01 is back on" · acme-prod · Was off for 7 min.
"web-02 is gone" · acme-prod · It no longer appears in this team.
Power actions and snapshots
There are six droplet actions: power on, shut down, power off, reboot, power cycle and take snapshot. Each one opens a sheet that names the action, the droplet and the team ("Reboot web-01", "in acme-prod") with a line on what happens next. Shut down, power off, reboot and power cycle are armed with a swipe that ends in the droplet's name, such as "Swipe to reboot web-01". Power on and take snapshot are a tap. Face ID or your passcode confirms every one.
| Action | Confirmed with | What it does |
|---|---|---|
| Power on | Tap, then Face ID | Starts a droplet that is off |
| Shut down | Swipe, then Face ID | Asks the operating system to stop cleanly |
| Reboot | Swipe, then Face ID | Restarts web-01 cleanly; it is down for a minute or two |
| Power cycle | Swipe, then Face ID | Cuts power and turns it back on, for a droplet that does not respond |
| Power off | Swipe, then Face ID | Cuts power without a clean shutdown; unsaved data may be lost |
| Take snapshot | Tap, then Face ID | Saves a disk image you can restore from |
A power off is a hard shutdown and should only be used if a shutdown does not succeed. Powered-off droplets are still billable; to stop the charges, destroy the droplet.
DigitalOcean docs: doctl droplet-action power-off (external link), verified
Backups are automatic disk images taken every 4, 6 or 12 hours, daily or weekly, and you can convert a backup to a snapshot to keep it indefinitely.
Hand off to your SSH app or DigitalOcean
Some fixes need a shell. The droplet screen copies the public IP, opens the droplet in the SSH app you already use, or opens it in the DigitalOcean control panel for anything beyond the six actions. The restore points section shows whether backups are on, when the last one ran, and flags "Backups are off" or "Backup overdue" when they are not keeping up.
What Duskwatch doesn't do here
- No console or terminal inside the app: it hands off to your SSH app.
- No creating, resizing, rebuilding or destroying droplets.
- No editing cloud firewall rules; it only points out what they expose.
- No reading log files on the droplet.
- No metric threshold alerts: keep your DigitalOcean alert policies for CPU or memory.
Questions
Can I see CPU, memory and disk for a droplet on my iPhone?
Yes, with charts over 1 h, 6 h, 24 h and 7 days. CPU, memory, disk and load need DigitalOcean's metrics agent on the droplet; without it, usually only bandwidth is reported.
Will I know if a droplet goes off?
With alerts turned on, a push arrives when a droplet goes off without a power action from your team, or disappears, and another when it is back on. The push names the droplet and the team.
Does a powered-off droplet still cost money?
Yes. DigitalOcean bills a powered-off droplet until it is destroyed, and the app shows that as "Off, still billed".
Can I reboot a droplet from my iPhone?
Yes. A sheet names the droplet and team, you swipe to arm the reboot, and Face ID confirms it.
Can I take a snapshot before a risky change?
Yes. Take snapshot is one of the six droplet actions, confirmed with a tap and Face ID.
Why are some droplet metrics missing?
CPU, memory, disk usage and load averages come from DigitalOcean's metrics agent. If it is not installed, the droplet screen says so and shows the bandwidth DigitalOcean still reports.