Keeping Disk Usage Under Control: Image Pruning

Every deploy leaves the old image on disk — neo prune, and automatic cleanup after every deploy, keep a small VPS from filling up.

4 min read v0.10.0 v0.18.0 v0.11.2

Why images pile up

Every deploy builds a new, uniquely-tagged image and keeps the old one until you're sure the new one is good — that's deliberate, it's what makes a manual rollback possible in the window right after a deploy. Left unchecked across dozens of deploys, though, those old images accumulate and a small VPS's disk fills up.

Automatic cleanup

Since 0.18.0, Neo prunes old images for an app automatically after each successful deploy, keeping the most recent two by default — no separate step needed for the common case.

Manual pruning

neo prune              # across all apps
neo prune my-app       # just one
neo prune --keep 5     # keep more than the default

Useful right after a large batch of deploys, or when disk pressure alerts fire and you want to reclaim space immediately rather than waiting for the next deploy's automatic cleanup.

The small-/tmp-server fix

Uploading an image to the server involves a temporary decompression step. On servers with a small /tmp partition (common on budget VPS providers with tight default partitioning), a sufficiently large image could fail to upload with a confusing "no space left on device" even when the main disk had plenty of room — the failure was in /tmp specifically. This is fixed; large images no longer depend on /tmp headroom disproportionate to their size.

Checking what's actually using space

neo status

Reports disk usage as part of the standard health summary, with an advisory when usage crosses a threshold — so a server heading toward "disk full" shows up before it becomes an incident, not after.

Try it yourself — Neo is free, with every feature unlocked.

Get started free