Best VPS for Self-Hosted Nextcloud

By Nate Corwin · Updated 2026 · self-hosting practitioner since 2017

Affiliate disclosure: some provider links below are affiliate links. Recommendations are based on Nextcloud-specific requirements (storage, CPU, PHP performance), not commission.

Nextcloud installs in ten minutes on any Linux VPS. The tutorials make it look effortless. What they don't tell you is what happens at month three, when your storage has quietly doubled from version history and trash retention, your sync client crawls through a folder of 10,000 small files, and your CPU spikes every time someone opens a photo-heavy folder. Nextcloud's challenges aren't in the setup — they're in the operation. Choosing the right VPS means planning for those challenges, not just getting the installer to finish.

What Nextcloud actually needs from a VPS

The Nextcloud documentation says 512MB RAM minimum. That gets you through the installer and not much else. Here's what running Nextcloud at reasonable scale actually requires:

ComponentMinimumRecommendedWhy
RAM2 GB4 GBPHP-FPM workers, database cache, preview generation buffer
CPU1 vCPU2 vCPUPreview generation for images/videos, PHP processing, cron jobs
Storage50 GB200+ GBYour files + versions + trash + database + OS. See storage section below
DatabaseSQLiteMariaDB/PostgreSQLSQLite locks on concurrent access. MariaDB handles multiple users

The CPU requirement surprises people. Nextcloud isn't just file storage — it generates preview thumbnails for every image, PDF, and video in your library. A folder with 500 photos triggers 500 preview generation jobs. Each one is a CPU-bound image resize operation. On a single shared vCPU at 2 GHz, opening a photo folder for the first time can take minutes while previews render.

Storage costs compared

Storage is the primary cost driver for a Nextcloud VPS. Here's how the main providers compare:

ProviderIncluded storageAdditional storageEffective cost per TB
Contabo400 GB ($7/mo) / 800 GB ($13/mo)Block storage available~$16-18/TB (included)
BuyVM20 GB ($3.50/mo)$1.25/256 GB slab~$5/TB (slabs)
Hetzner40 GB (€5.49/mo)€0.052/GB/mo volumes~€53/TB (volumes)
Hetzner Storage BoxDedicated product~€3.20/TB (backup only)
DigitalOcean25 GB ($4/mo)$0.10/GB/mo volumes~$100/TB (volumes)

BuyVM's storage slabs ($1.25/256 GB) are the cheapest attached storage in the VPS market. A 1 TB Nextcloud setup costs $3.50 (VPS) + $5 (slabs) = $8.50/month. The catch: slab availability varies by location and they sell out. Check before committing to BuyVM for a storage-heavy deployment.

Contabo's included storage (400-800 GB depending on plan) is the most convenient — no separate volume provisioning, no mount configuration. For users who want Nextcloud without managing block storage, Contabo is the simplest path.

Hetzner's VPS storage is expensive per GB, but their Storage Boxes (separate product, NFS/SFTP/WebDAV access) offer backup-tier storage at ~€3.20/TB — useful for Nextcloud's external storage feature or off-server backups.

6 pain points nobody warns about

1. WebDAV sync is inherently slow

Nextcloud uses WebDAV for file sync. WebDAV is an HTTP extension from 1999 that was designed for occasional file editing, not continuous synchronization of thousands of files. Each file operation requires a separate HTTP request with full headers. Syncing a folder with 10,000 small files (like a code project or photo export) means 10,000 individual HTTP round-trips.

Practical throughput for many-file operations tops out around 30 MB/s even on a fast VPS, regardless of how much bandwidth your server has. Large single-file transfers are faster, but the many-file scenario is where Nextcloud feels noticeably slower than Google Drive or Dropbox, which use proprietary sync protocols designed for this workload.

2. Large uploads fail through Cloudflare

If you put Nextcloud behind Cloudflare's proxy (for DDoS protection or caching), file uploads over 100 MB fail by default. Cloudflare's free and Pro plans cap request body size at 100 MB. A 500 MB video upload to your Nextcloud gets rejected at the Cloudflare edge, not at your server.

Options: increase the limit on Cloudflare Business/Enterprise plans, bypass Cloudflare for upload paths (DNS-only mode for the Nextcloud subdomain), or use chunked uploads in the Nextcloud client (which splits files into smaller pieces). The chunked upload approach works but adds complexity to your client configuration.

3. Storage balloons from versions and trash

Nextcloud keeps version history for every file by default. Every save creates a new version. Every delete moves the file to trash for 30 days. A 50 GB actively-used file collection can grow to 80-100 GB with versions and trash.

Configure version retention early: versions_retention_obligation in config.php controls how long versions are kept. The default ("auto") uses a sliding window that keeps recent versions frequently and older ones sparsely, but it never fully cleans up. Set explicit limits (e.g., 30,180 for 30-day granular / 180-day maximum) to prevent unbounded growth. Same for trash: trashbin_retention_obligation defaults to "auto" — set a hard limit.

4. CalDAV/CardDAV require cron

Nextcloud's calendar (CalDAV) and contacts (CardDAV) features depend on background jobs running on schedule. The default background job method is AJAX — jobs only run when someone loads a Nextcloud page in a browser. If nobody opens Nextcloud for 12 hours, calendar reminders don't fire, shared calendar updates don't propagate, and contact sync stalls.

Switch to system cron immediately after installation:

crontab -e
# Add: */5 * * * * php -f /var/www/nextcloud/cron.php

Then set Background Jobs to "Cron" in Nextcloud Admin settings. This is step one of post-install configuration, not optional optimization.

5. Preview generation kills CPU

The first time you open a folder with photos in the Nextcloud web interface, the server generates thumbnail previews for every image. On a VPS with a single shared vCPU, generating previews for 200 photos can pin the CPU at 100% for several minutes, during which the interface is sluggish for everyone.

Install the previewgenerator app and run it via cron during off-peak hours:

php occ preview:generate-all

This pre-generates previews in the background instead of on-demand. Subsequent folder opens are instant. For VPS plans with limited CPU, this is the difference between Nextcloud feeling fast and feeling broken.

6. PHP tuning is not optional

Nextcloud is a PHP application. Default PHP configurations are tuned for shared hosting with tiny scripts, not a full-stack application serving file operations. Three settings need adjustment immediately:

Also configure PHP-FPM worker count based on your RAM: each worker uses approximately 50-80 MB. With 4 GB RAM (minus OS and database), you can sustain 10-15 workers. Too few = requests queue; too many = out of memory.

Provider picks

Best storage value: Contabo

Contabo at $6.60/month includes 400 GB SSD and unlimited bandwidth. For a single-user Nextcloud deployment, 400 GB is often enough without purchasing additional storage. The mid-tier plan (~$13/month) includes 800 GB and 4 vCPU — enough for a family setup with preview generation running in background.

Contabo's shared CPU at 2 GHz is adequate for everyday Nextcloud use but will struggle with heavy preview generation. Pre-generate previews during off-peak hours.

Cheapest at scale: BuyVM

BuyVM's base VPS ($3.50/month) plus storage slabs ($1.25/256 GB) creates the cheapest large-storage Nextcloud setup: 1 TB for $8.50/month, 2 TB for $13.50/month. If you're migrating a multi-terabyte Google Drive library, BuyVM's economics are unbeatable.

Availability of storage slabs varies. Check before committing.

Best overall: Hetzner

Hetzner CX23 (€5.49/month: 2 vCPU, 4 GB RAM, 40 GB NVMe) provides the best baseline performance for Nextcloud's PHP workload. Add Hetzner Volumes for primary storage and a Hetzner Storage Box for backup — keeping application and backup on separate systems.

Hetzner's data centers in Germany and Finland provide EU jurisdiction (GDPR-compliant) for users who chose Nextcloud specifically for data sovereignty. The Finland location avoids Germany's data retention requirements.

Full comparison

ProviderStarting priceIncluded storageRAMBest for
Contabo$6.60/mo400 GB8 GBSingle user, most storage included
BuyVM$3.50 + slabs20 GB + $1.25/256 GB512 MB+Large libraries, cheapest bulk
Hetzner€5.49/mo + volumes40 GB4 GBBest PHP performance, EU privacy
RackNerd~$11/yr15-30 GB768 MB+Light use, personal documents only

Backup strategy

Self-hosted means self-backed-up. If your VPS disk fails and you have no backup, your files are gone. Nextcloud makes this particularly important because people migrate their primary file storage to it — losing a Google Drive replacement means losing everything.

Automate all three via cron. Test the restore process before you need it.

FAQ

How much storage for Nextcloud on a VPS?

Your files + 50-80% overhead for versions and trash. A 50 GB collection needs 80-100 GB. Single user: 100-200 GB. Family: 500 GB-1 TB. Configure versions_retention_obligation and trashbin_retention_obligation in config.php to cap growth.

What is the best VPS for Nextcloud?

Contabo ($6.60/mo, 400 GB included) for simplicity. BuyVM ($3.50 + $1.25/256 GB slabs) for cheapest bulk storage. Hetzner CX23 (€5.49/mo + volumes) for best PHP performance and EU privacy. All KVM, all Docker-compatible.

Can Nextcloud replace Google Drive?

Functionally, yes — files, calendar, contacts, document editing. In practice, WebDAV sync is slower (~30 MB/s ceiling for many files), you manage your own backups, and PHP tuning is required. For a single user willing to do initial setup, it works well. For teams expecting Google Workspace polish, expect rough edges.