Image Transfer & Spending Limit
Besides build minutes, plans include image transfer: the image layers your servers pull from Zenavo's registry. Your apps run on your own servers, so Zenavo does not charge for their compute or traffic; image transfer is the part of a deploy that passes through Zenavo.
What counts
Image transfer is the GB of image layers servers download from Zenavo's registry, which holds the images Zenavo builds from your Git repositories and uploaded directories. 1 GB is 1,000,000 KB.
- Counted: a server pulling a layer it does not have yet, when a service built by Zenavo is deployed, rolled back, or started on a server that lacks its image.
- Not counted: builds, and public images (Docker Hub, GHCR, Quay, …) such as the databases you add from the console, which servers pull from their own registry. Layers a server already has are not downloaded again, so a redeploy that changed only your code usually pulls just the top layers.
Transfer is counted by the hour, so a pull within an hour of the period's end may count in the next period.
Included per plan
| Free | Dev | Pro | Team | |
|---|---|---|---|---|
| Image transfer included | 10 GB | 50 GB | 200 GB | 500 GB |
| Above the included GB | Pulls stop | $0.035 per GB, up to the spending limit | $0.035 per GB, up to the spending limit | $0.035 per GB, up to the spending limit |
The allowance is per billing period, which starts on the day the workspace subscribed. Without a subscription it is per calendar month (UTC).
Usage shows the image transfer used so far against the plan; switch the chart to Image transfer to see it per day. Amounts are estimates, not an invoice.
Spending limit
On paid plans, image transfer above the included GB is billed in arrears with the next invoice, as a line of its own under Upcoming invoice. The spending limit caps these usage charges per billing period. It is $20 until an owner changes it under Account settings → Subscription → Usage charges; any amount from $0 to $10,000 is allowed. Set it to $0 to never pay for usage above the plan.
What you pay for usage in a period never exceeds the limit.
When the limit is reached
When a paid workspace reaches its spending limit, or a Free workspace uses its 10 GB:
- Servers cannot pull new images from Zenavo's registry, and deploys that need one are refused with an explanation. Deploying public images keeps working.
- Running services keep running. Nothing is stopped or deleted. A service that has to start on a server without its image, for example after a restart that moved it, cannot start until pulls are allowed again.
- The Usage page shows a notice until the limit is raised, the plan is upgraded or the period ends.
To continue, raise the spending limit (owners), upgrade the plan, or wait for the next period.
Warnings
Members who have the Usage limit notification on are emailed when image transfer reaches 80% and 100% of what the period allows: the included GB on Free, the included GB plus the spending limit on paid plans. Team channels can receive the same alert (Notifications).
Keep transfer low
- Use small base images, such as
-alpineor-slimvariants, and multi-stage Dockerfiles that copy only the build output into the final image (Build Plan). - Put what changes least early in the Dockerfile: dependencies before source code, so most layers stay the same between deploys and are not pulled again.
- Use watch paths so pushes that change only docs or other services don't redeploy.
- Keep a service on the same server: moving it pulls every layer again.