Nextcloud costs are almost always calculated wrong — not because anyone is being dishonest, but because the obvious calculation misses a line item you cannot see: Nextcloud puts significantly more on disk than your users upload.
How much more? Opinions abound. So we measured it. On 16 August 2026 we set up a real Nextcloud instance (version 34.0.3), uploaded 120 photos, browsed them like ordinary users would — and then counted what was actually sitting on disk.
The headline result first, because it moves the entire cost calculation:
Merely looking at 60 photos increased disk usage by 72.9%. Not uploading them — looking at them. And a single configuration setting cuts that surcharge to 10.6%, a saving of 85.4% on preview storage.
That number appears in no price list, no quote and none of the usual comparison articles. Yet it decides whether you need to buy 1.1 TB or 1.8 TB of storage to hold 1 TB of user data.
This article works through Nextcloud costs across three operating models: self-hosted, managed provider and Nextcloud Enterprise. Every price was pulled live on 16 August 2026, every storage figure measured ourselves. Where we had to correct our own measurements, we say so — that is part of the method.
Nextcloud costs: why “free” is the wrong starting question
The Nextcloud software is open source and licence-free. That is true, and it is simultaneously the least important number in any cost calculation — because it is the only line item guaranteed to be zero. None of the others are.
A Nextcloud installation has four cost blocks:
| Block | Applies to | Visible in a quote? |
|---|---|---|
| Licence | Enterprise only | yes |
| Infrastructure | server, storage, backup, IP | yes |
| Storage overhead | previews, versions, trash | no |
| Staff time | updates, incidents, restores | no |
The bottom two appear in no comparison you can find by searching — and for small installations they are regularly larger than the top two combined. Which is exactly why this article measures them instead of guessing.

Storage overhead: measured, not estimated
The setup
We deployed Nextcloud 34.0.3 in Docker (MariaDB 11.4, Redis, PHP via the official image), left every setting at its default, and uploaded 120 photos at typical smartphone resolution (4032 × 3024 pixels, averaging 4.82 MiB each) over WebDAV. 578.4 MiB of user data in total.
The first data point was a surprise — a pleasant one:
After uploading all 120 files, overhead was exactly 0.00%. The data directory had grown by precisely the 606,527,570 bytes we had uploaded. To the byte.
That is an important all-clear: Nextcloud generates no preview images on upload. If you only ever store data and never look at it, you genuinely pay no surcharge. This is precisely why tests that upload and then check immediately always report “all good” — and are wrong anyway.
What happens when you look
So we viewed 60 of the photos the way a user would: the file list with thumbnails (256 px), then the larger preview (1024 px). Afterwards, the appdata_*/preview directory contained:
| Preview type | Count | Total size |
|---|---|---|
256-256-crop.jpg (file list) | 60 | 0.59 MiB |
1024-1024-crop.jpg (preview) | 60 | 6.79 MiB |
4032-3024-max.jpg | 60 | 203.4 MiB |
| Total | 180 | 210.8 MiB |
du -sb before and after; file types counted with find -printf.
The third row is the whole story. 96.5% of preview storage goes to a single file per image: a freshly encoded copy at full resolution. 4032 × 3024 pixels — the same dimensions as the original.
For one sample image: original 5,059,065 bytes, max preview 3,554,036 bytes. Nextcloud stores a second, only slightly smaller version next to every photo.
Overhead in numbers:
| Item | Value |
|---|---|
| 60 originals | 289.2 MiB |
| Previews total | 210.8 MiB |
| Surcharge | 72.9% |
Surcharge excluding the max copy | 2.55% |
| Overall factor | 1.73× |
Why it happens — read from the source
This is not a bug or an edge case; it is documented default behaviour. In lib/private/Preview/Generator.php the cause sits in two lines:
$maxWidth = $this->config->getSystemValueInt('preview_max_x', 4096);
$maxHeight = $this->config->getSystemValueInt('preview_max_y', 4096);
When a preview is first requested, Nextcloud generates a maximum preview and derives every smaller size from it. The ceiling for that maximum preview defaults to 4096 × 4096 pixels. A 12-megapixel photo (4032 × 3024) sits below that — so it gets cached at essentially full resolution.
On our test instance neither option was set; both lookups returned empty. This is the shipping state.

The counter-test: one setting, 85.4% less
If the cause is a ceiling, lowering the ceiling must have an effect. So we set preview_max_x and preview_max_y to 2048, discarded the previews and repeated the identical procedure with 20 photos:
| Default (4096) | Capped (2048) | |
|---|---|---|
| Largest preview | 4032 × 3024 | 2048 × 1536 |
| Previews per photo | 3.51 MiB | 0.51 MiB |
| Surcharge on originals | 72.9% | 10.6% |
| Saving | — | 85.4% |
Extrapolated to real data volumes:
| User data | Disk at default | Disk with 2048 cap |
|---|---|---|
| 500 GB | 865 GB | 553 GB |
| 1 TB | 1.73 TB | 1.11 TB |
| 10 TB | 17.3 TB | 11.1 TB |
The configuration, in config/config.php:
'preview_max_x' => 2048,
'preview_max_y' => 2048,
At 10 TB of user data that is a difference of 6.2 TB of purchased storage — with any provider, in any operating model, every month. For two lines of configuration.
An important caveat so the number is not oversold: the effect applies to images and other previewable files. An instance holding mostly office documents, ZIP archives or video will show a different ratio. If you store a lot of photos — which covers clubs, schools, agencies and families almost without exception — you will land close to our measurement.
A mistake we made ourselves
Between the two runs we wanted to clear the previews. The advice you find everywhere says: just delete the appdata_*/preview directory. So we did.
Afterwards every preview request returned HTTP 500. The log said:
Unable to open preview stream at /var/www/html/data/appdata_.../preview/f/b/d/7/9/3/9/76/256-256-crop.jpg
The reason is a change that this advice has not caught up with: Nextcloud 34 tracks previews in the database. After the deletion our instance held 180 rows in oc_previews pointing at files that no longer existed. Even occ maintenance:repair did not help.
The correct route is a dedicated command that cleans up both:
sudo -u www-data php occ preview:cleanup
After that: oc_previews = 0 rows, previews back to HTTP 200.
The rule behind it: advice that was once correct throws no error when the software moves on beneath it. It just sits there, still sounding plausible. If you want to reclaim storage, use the command that ships with the product — not
rm.
The second invisible item: versions and trash
Previews are the biggest surcharge but not the only one. Two further mechanisms are on by default, and both keep data longer than most people expect.
The trash may occupy half of your quota
config/config.sample.php ships with 'trashbin_retention_obligation' => 'auto', documented as:
Keeps files and folders in the trash bin for at least 30 days. Then, if space is needed, deletes trashed files anytime after that.
The decisive phrase is “if space is needed”. As long as space is available, nothing is deleted — not even after 30 days. And in apps/files_trashbin/lib/Trashbin.php the ceiling is stated plainly:
// unit: percentage; 50% of available disk space/quota
A user’s trash may occupy up to 50% of their available quota. Allocate 100 GB and you are effectively planning for up to 150 GB.
Versions: up to 169 states per file
Versioning follows a fixed schedule defined in apps/files_versions/lib/Storage.php. Worked out, it yields:
| File age | One state every | Max states |
|---|---|---|
| 0–10 seconds | 2 seconds | 5 |
| 10 sec – 1 minute | 10 seconds | 5 |
| 1 minute – 1 hour | 1 minute | 59 |
| 1 hour – 1 day | 1 hour | 23 |
| 1–30 days | 1 day | 29 |
| beyond 30 days | 1 week | unlimited |
$max_versions_per_interval array in Nextcloud 34.0.3. These are per-file upper bounds, reached only if the file is actually modified that often.
That is 121 possible states in the first 30 days and, after a year, theoretically 169 versions of a single file. Harmless for a text document. Not harmless for a 200 MB project file edited daily.
Both can be bounded:
'trashbin_retention_obligation' => '14, 30',
'versions_retention_obligation' => '14, 90',
The first pair means: keep for at least 14 days, delete unconditionally after 30.
For your cost calculation: plan realistically for a 20–40% surcharge on top of raw user data — in addition to previews. We deliberately use a conservative 25% below.
What the base installation costs before a single user arrives
Nextcloud occupies space before the first file is uploaded. We measured that too rather than guessing:
| Item | Size |
|---|---|
Program code (/var/www/html excluding data) | 873 MiB |
| Data directory, fresh after install | 63 MiB |
| Database (131 tables) | 6.0 MiB |
| Docker images (Nextcloud + MariaDB + Redis) | 2.83 GB |
48 apps are active out of the box — including Activity, file versions, trash, Photos, Text, Talk foundations and the App Store. That is convenient, and it is why an “empty” Nextcloud occupies roughly 1 GB before anyone uses it.
The official system requirements state a minimum of 128 MB RAM per process, 512 MB recommended, and at least 256 MB for the built-in updater. In practice that is the floor, not the planning figure.
The three operating models with real prices
Every price below was retrieved directly from the providers on 16 August 2026 — Hetzner via their live pricing API, Nextcloud from the official pricing page. All figures exclude VAT.
Model 1: self-hosting
| Item | Product | Price/month |
|---|---|---|
| Server (small) | CPX12 | €11.49 |
| Server (medium) | CPX22 | €19.49 |
| Server (large) | CPX42 | €69.49 |
| Backup storage 1 TB | BX11 | €3.20 |
| Backup storage 5 TB | BX21 | €10.90 |
| Backup storage 20 TB | BX41 | €40.60 |
| IPv4 address | Primary IP | €0.50 |
A note on diligence: we nearly published €0.50 as a per-unit storage price. Product ID CLOUD_21 returns exactly that value and sat in the page source right next to the server packages. Cross-checking against the pricing table showed: that is the IPv4 address fee, not storage. A number from the right source can still be the wrong number if you do not verify what it means.
Model 2: managed Nextcloud
Hetzner Storage Share (Nextcloud as a managed service, German data centre):
| Plan | Storage | Users | Price/month |
|---|---|---|---|
| NX11 | 1 TB | unlimited | €4.29 |
| NX21 | 5 TB | unlimited | €14.19 |
| NX31 | 10 TB | unlimited | €27.39 |
Nextcloud One (the official managed service, operated by epiKshare, hosted in Germany):
| Plan | Storage | Annual billing | Monthly billing |
|---|---|---|---|
| Single user (1–4) | 500 GB | €15/user/month | €18 |
| Team (5+) | 1 TB + 200 GB per user | €13/user/month | €16 |
Model 3: Nextcloud Enterprise
| Plan | From 100 users | From 200 users |
|---|---|---|
| Standard | €71.29/user/year | €53.17 |
| Premium | €104.99 | €81.99 |
| Ultimate | €204.75 | €183.75 |
| Files only (Standard) | €42.00 | €31.50 (from 250) |
Three things absent from that table that change the calculation:
- Enterprise starts at 100 users. Verbatim from the pricing page: “Nextcloud subscriptions are available from 100 users and up.” For smaller organisations this model simply cannot be bought — the price column is irrelevant to them.
- The subscription includes no server. Nextcloud does not provide hosting (“we do not offer hosting”). Infrastructure is entirely additional.
- Talk, Groupware and Office are add-ons. In all three tiers they are listed as “Optional (extra costs)”. Anyone expecting video conferencing to be bundled with Enterprise has not actually bought it.
On the maintenance window, the gap between tiers is wider than the price difference suggests: Standard 1 year, Premium and Ultimate 5+ years. If you plan to stay on one version for a long time, Premium buys you planning certainty rather than support.

The item that decides everything: staff time
Nextcloud ships a new major version every four months, maintained for one year. Three versions are currently supported in parallel (34, 33, 32); version 32 reaches end of life in September 2026. Major versions must not be skipped.
In practice: at least one major upgrade per year, plus monthly maintenance releases — most recently on 13 Aug 2026 for all three branches simultaneously.
This is where self-hosting calculations tip over. Take “5 users, 500 GB”, set the infrastructure (CPX22 + BX21 + IPv4 = €370.68/year) and vary only the hourly rate:
| Maintenance | €0/h (hobby) | €50/h | €80/h |
|---|---|---|---|
| 1 h/month | €371 | €971 | €1,331 |
| 2 h/month | €371 | €1,571 | €2,291 |
| 4 h/month | €371 | €2,771 | €4,211 |
For comparison, the same 5 users:
- Hetzner Storage Share NX11 (1 TB): €51/year
- Nextcloud One Team: €780/year
- Nextcloud Enterprise: not available (below 100 users)
Which gives us the most uncomfortable figure in this article:
At five users, the managed service costs €51 a year. The self-hosted instance costs €371 a year in pure infrastructure — seven times as much, before a single hour of work is counted.
Self-hosting does not pay off on price at small scale. It pays off through control, data sovereignty, arbitrary apps and the freedom to do things a provider will not allow. Those are good reasons. “It is cheaper” is not one of them at five users.
At 100 users the picture flips
| Model | Cost/year |
|---|---|
| Self-hosted, infrastructure (CPX42 + BX41 + IP) | €1,327 |
| … + 8 h/month at €50 | €6,127 |
| … + 8 h/month at €80 | €9,007 |
| Enterprise “files only” (100 users) | €4,200 + server |
| Enterprise Standard (100 users) | €7,129 + server |
| Nextcloud One Team (100 users) | €15,600 |
Here self-hosting becomes relatively cheap — but only as long as maintenance genuinely fits into eight hours a month. At 100 users that covers updates, backups, restore tests, incidents, user questions, certificates and security advisories. Anyone who does not budget those hours honestly is comparing a full price against a partial one.

The honest calculation for your size
Up to 5 users, a few hundred GB
Recommendation: managed. The price gap is overwhelming (€51 versus €371 in pure infrastructure) and maintenance disappears entirely. Self-host only if you want to — as a learning project, on principle, or because you need apps a provider will not permit.
5–50 users
The range where it genuinely needs calculating. Managed storage plans are often still cheaper here, but the limits start to bite: restricted app selection, no system configuration, no access to config.php — and therefore no access to the preview optimisation from this article either. If you store many photos, you pay the full overhead at your provider without being able to switch it off.
Rule of thumb: if there is a named person with reserved time, self-hosting makes sense. If there is not, “we host it ourselves” becomes “we run an unpatched system” within a year.
From 100 users
Enterprise starts to pay — but rarely in the most expensive tier. The files-only variant at €42/user/year covers the most common use case (files, sync, sharing, SAML login, audit logging) at 59% of the Standard price. If you genuinely need Talk or Office, buy them deliberately rather than moving up a tier.
The strongest argument for Enterprise is not support but the 5+ year maintenance window from Premium upwards. In organisations with change-management processes, an upgrade every four months is an organisational problem, not a technical one.
What we do ourselves — and what we do not claim
We run our own servers, on Debian, because stability matters more than currency there (our comparison Debian vs Ubuntu explains why). For securing them we rely on Nginx as a reverse proxy.
And we know from experience what the “staff time” line item is worth when it is missing: one of our servers ran foreign code unnoticed for five days because a dependency was out of date. The full write-up is in Server hijacked for five days and in our overview of IT security vulnerabilities. Those five days are the best evidence that “self-hosting” is not a one-off decision but an ongoing obligation.
What we did not measure, and therefore do not claim: we did not load-test an instance with 100 concurrent users. Our storage and overhead figures are solid; our figures for the server size required at high user counts are not — there we follow the vendor’s guidance. An estimated number looks identical to a measured one in a table, which is why it is not in this one.
If you are deploying Nextcloud in education, the matching figures are in our article Nextcloud for schools — including the analysis of how many of the 740 apps in the official store still fit the current version.
Actionable now: cut your storage bill
Four changes, all in config/config.php, all effective immediately:
// 1. Cap previews — the biggest lever (measured: 85.4% less)
'preview_max_x' => 2048,
'preview_max_y' => 2048,
// 2. Bound the trash: min 14 days, delete after 30 at the latest
'trashbin_retention_obligation' => '14, 30',
// 3. Bound versions: min 14 days, delete after 90 at the latest
'versions_retention_obligation' => '14, 90',
// 4. Enable only the preview providers you need
'enabledPreviewProviders' => [
'OC\Preview\PNG',
'OC\Preview\JPEG',
'OC\Preview\GIF',
'OC\Preview\HEIC',
'OC\Preview\PDF',
],
Then clear the existing previews once — with the command, not with rm:
sudo -u www-data php occ preview:cleanup
A note on sequence: clean up after the new limits are in place. Otherwise the old, large previews are simply regenerated at their old size on next access.
Frequently asked questions about Nextcloud costs
Is Nextcloud really free?
The software yes, running it no. The Community Edition is licence-free and functionally complete. Costs arise from servers, storage, backup and above all staff time. At five users, infrastructure alone runs to roughly €371 per year, while a managed 1 TB plan costs €51 per year. “Free” describes the licence, not the bill.
How much storage do I need for 1 TB of data?
Based on our measurement, about 1.73 TB in the default configuration if the content is mostly photos — the surcharge comes from preview images. With previews capped (preview_max_x/y = 2048) the requirement drops to about 1.11 TB. Trash and versions come on top; budget another 20–40% to be safe.
Why is my Nextcloud storage growing when nobody is uploading?
Because preview images are created when files are viewed, not when they are uploaded. In our test, overhead immediately after upload was exactly 0% and rose to 72.9% purely from browsing the files. Add to that file versions and a trash bin that keeps items for at least 30 days by default and may occupy up to 50% of a user’s quota.
What does Nextcloud Enterprise cost?
From 100 users: €71.29 per user per year (Standard), €104.99 (Premium) and €204.75 (Ultimate); from 200 users these drop to €53.17 / €81.99 / €183.75. A files-only variant starts at €42 per user per year. Importantly: Enterprise cannot be purchased below 100 users, servers are not included, and Talk, Groupware and Office cost extra in every tier.
Is self-hosting worth it versus a provider?
At small scale, almost never on price — a managed plan is many times cheaper than running your own server. From around 100 users this reverses, provided maintenance realistically fits into eight hours a month. The honest decision question is not “what does the server cost” but “who does the updates, and is their time budgeted”.
How much staff time should I budget?
Nextcloud ships a new major version every four months with one year of maintenance, plus monthly patch releases, and major versions cannot be skipped. That means at least one major upgrade per year plus ongoing patching. Realistically, one to two hours a month for small installations and four to eight for larger ones — excluding incidents.
Can I reduce storage costs retroactively?
Yes. Set preview_max_x and preview_max_y to 2048, bound trash and versions, then run occ preview:cleanup once. In our test this cut preview storage by 85.4%. Do not delete the preview directory by hand — in Nextcloud 34 previews are also tracked in the database, and orphaned rows produce HTTP 500 errors.
Which model suits which size?
Up to about five users, a managed plan. Between five and fifty it is a genuine calculation, where the decisive question is whether a responsible person with reserved time exists. From a hundred users Enterprise becomes interesting — often in the files variant, whose main benefit from Premium upwards is the 5+ year maintenance window.

Conclusion
Nextcloud costs consist of four blocks, of which price lists show only two. The two invisible ones — storage overhead and staff time — decide more than half the bill at small scale and decide feasibility at large scale.
What we could measure, we measured:
- 72.9% storage surcharge from preview images alone in the default configuration — and 0% immediately after upload, which is why the effect is so often missed.
- 85.4% saving from two configuration lines. The biggest lever in this article costs nothing.
- 1 GB occupied before the first user logs in, with 48 apps active out of the box.
- Up to 169 versions per file, and a trash bin permitted to occupy 50% of the quota.
And the one figure that contradicts most calculations: at five users, the self-hosted instance costs seven times what a managed plan does, before a single hour of work is counted.
None of that is an argument against self-hosting. We self-host, by conviction, and would do it again. It is an argument against justifying self-hosting with price. The good reasons are control, data sovereignty and independence — and those hold up under scrutiny. “It is cheaper” does not, at small scale.
Run the numbers from this article, apply the four configuration lines, and then decide. A decision that knows the full price lasts longer than one that discovers it in year two.
