Technology

Secure VPS Hosting for Nextcloud and ownCloud: Storage, Encryption and Backups

İçindekiler

Why Nextcloud and ownCloud Belong on a Secure VPS

Nextcloud and ownCloud are powerful tools when you want Dropbox or Google Drive style file sharing, but with full control over where your data lives. As soon as you start storing contracts, internal documents, client files or personal photos, the question becomes very simple: where do you host all of this safely, without turning your life into a full time sysadmin job?

At dchost.com we see three common patterns. Some teams start on shared hosting and quickly hit limits on file size, performance and security isolation. Others overcorrect and jump straight to complex multi server clusters they do not really need. A well sized, well designed VPS sits in the sweet spot: dedicated resources, strong isolation from other users, and enough flexibility to build a serious storage, encryption and backup architecture around your Nextcloud or ownCloud instance.

In this article we will walk through how to design that architecture step by step. We will focus on three pillars that actually decide how safe your private cloud is: storage layout on the VPS, encryption end to end, and a backup and disaster recovery plan that survives mistakes, hardware issues and even ransomware. The goal is a setup you can explain to management or clients in clear language and that you can run confidently on dchost.com VPS, dedicated or colocation infrastructure.

Sizing and Designing the VPS for a Private Cloud

Before talking about disks and encryption, you need a realistic VPS baseline. Both Nextcloud and ownCloud are PHP applications with a web server, a database (usually MariaDB or PostgreSQL) and a storage backend. They scale more like a CMS plus heavy file I/O than like a tiny blog.

Baseline VPS resources for Nextcloud and ownCloud

For small teams and families (up to 20–30 active users), we generally recommend:

  • vCPU: 2–4 dedicated vCPUs (4 is noticeably smoother for larger previews, full text search, antivirus apps and Collabora/OnlyOffice integration)
  • RAM: 4–8 GB (4 GB minimum, 8 GB gives headroom for PHP workers, database cache and previews)
  • Disk: 150–500 GB for a starter deployment, on SSD or NVMe
  • Bandwidth: Enough monthly traffic to cover sync, mobile use and external shares; this grows fast once people start using WebDAV heavily

For larger teams (50–200+ active users), planning vCPU, RAM and IOPS becomes critical. Our article on capacity planning for vCPU, RAM and IOPS is written for WooCommerce, but the logic is very similar for storage heavy Nextcloud setups.

SSD vs NVMe and why it matters for sync performance

File sync platforms are I/O heavy: every upload, download, preview, index job and antivirus scan hits your disk. Rotational HDDs quickly become a bottleneck. SSD is the minimum; NVMe often pays back its price in reduced latency and much snappier sync.

If you want a deeper comparison, our guide on NVMe SSD vs SATA SSD vs HDD for hosting and backups explains how throughput and IOPS translate into real world performance on a VPS or dedicated server.

OS, filesystem and control panel choices

  • OS: Debian and Ubuntu are the most popular for Nextcloud and ownCloud. AlmaLinux or Rocky Linux are also fine if you prefer RHEL style systems.
  • Filesystem: ext4 and XFS are stable choices on classic VPS storage. ZFS is attractive when you want snapshots, checksums and built in compression, especially on dedicated or colocation servers.
  • Control panel vs plain SSH: You can run Nextcloud on cPanel or a similar panel, but serious deployments benefit from a clean Nginx or Apache configuration directly on the VPS. Our guide on running a VPS without a control panel over SSH only walks through that approach.

Storage Architecture for Nextcloud and ownCloud

Once you have a VPS, the real design work starts on the storage side. The goal is to separate concerns: operating system, database and application code on one side; user data on another; and offsite backups in a third, isolated place.

Logical layout: OS, app, database and data directory

A clean, robust layout on a single VPS looks like this:

  • OS and base system: Root filesystem (ext4 or XFS), 20–40 GB
  • Database: Data directory on fast disk, often under /var/lib/mysql or /var/lib/postgresql; keep enough IOPS for concurrent syncs and search
  • Nextcloud/ownCloud app code: Under /var/www or a similar path, managed with your package manager or git
  • Data directory: A separate mount point such as /cloud-data, ideally on its own virtual disk or partition

Separating the data directory into its own mount makes it easier to move to a larger disk later and to mount it with stricter options (noexec, nodev, etc.). It also allows you to take filesystem level snapshots of data without freezing the entire OS.

RAID, redundancy and when it belongs inside the VPS

On a VPS, the provider usually handles physical redundancy at the hypervisor or storage layer. Inside the virtual machine you typically do not need software RAID for a single disk device. Where RAID or ZFS mirrors become useful is on dedicated servers or colocation, where you control multiple physical drives.

If you move your Nextcloud or ownCloud to a dedicated server in our data centers, we often recommend:

  • RAID 1 or RAID 10 of SSD or NVMe for the main data set
  • Separate, slower HDD pool for local backup snapshots (with offsite copies on top)
  • ZFS or mdraid depending on operational familiarity and tooling

Using object storage as external storage

Nextcloud and ownCloud can attach external storage backends such as S3 compatible object storage. This is extremely useful when:

  • You want to keep your VPS small and push large archives or media libraries into cheaper object storage
  • You need geo redundant copies of certain shared folders
  • You want versioning and immutable object locking at the storage level

On dchost.com infrastructure you can run your own S3 compatible stack (for example MinIO) on a separate VPS or server and connect it via the External Storage app. Our article on production ready MinIO on a VPS shows how to secure such a service with TLS, erasure coding and bucket policies.

For most teams we recommend this hybrid pattern: use fast block storage (SSD or NVMe) for the primary Nextcloud data directory and database, and add object storage only for large, rarely changed archives or team shares.

Three common storage patterns

1. Small team, single VPS

  • One SSD or NVMe disk, partitioned into root filesystem and /cloud-data
  • Database on the root filesystem, with tuned InnoDB buffers
  • Regular filesystem snapshots (LVM or ZFS) plus offsite backups

2. Growing company, larger single server

  • Separate virtual disks for OS, database and data directory
  • Data disk on larger, high IOPS SSD or NVMe
  • Optional object storage backend for media and long term archives
  • More aggressive snapshot and backup schedule with longer retention

3. Dedicated or colocated storage server

  • Multiple physical SSD or NVMe drives in RAID 10 or ZFS mirror
  • Separate HDDs or remote object storage for backup copies
  • Database either co located or on a separate server, replicated

This third pattern is where dchost.com dedicated and colocation services shine: you get direct control over disks, controllers and RAID layout, while our team manages power, cooling, connectivity and data center level redundancy.

Encryption Architecture: In Transit, At Rest and In App

With storage in place, the next layer is encryption. For a private cloud, you want a clear answer to three questions: is traffic encrypted in transit, is the disk encrypted at rest, and do I need server side or client side encryption inside Nextcloud or ownCloud?

Transport encryption: HTTPS done properly

Every Nextcloud or ownCloud deployment must be behind HTTPS, without exception. On a VPS this usually means:

  • Nginx or Apache terminating TLS on ports 80 and 443
  • Automatic certificates via Let’s Encrypt using HTTP 01 or DNS 01 challenges
  • Modern TLS configuration (TLS 1.2 and 1.3, with strong ciphers)
  • HSTS enabled once you are confident there is no mixed content

If you want a deeper dive into protocol details, you can refer to our guides on modern SSL and TLS protocol updates and on fixing common SSL certificate errors. The same best practices apply to a Nextcloud or ownCloud instance on a VPS.

Disk and filesystem encryption at rest

Encrypting data at rest protects you against someone physically accessing the storage device or an offline copy of the virtual disk. You have a few options:

  • Full disk encryption with LUKS: Encrypts the entire root volume. Strongest against physical theft, but requires a passphrase on boot, which complicates unattended reboots.
  • Separate encrypted data volume: Only the partition or virtual disk mounted as /cloud-data is encrypted. The OS can boot unattended, but you must unlock the data volume before services start.
  • ZFS native encryption: If you deploy on ZFS (often on dedicated or colocation servers), you can encrypt datasets individually and still use ZFS snapshots, compression and replication.

On VPS platforms where reboots should be automatic, a common compromise is to encrypt only the data disk. The OS and database remain on unencrypted volumes, while the user file store is protected. You then put strict firewall and SSH controls on the VPS, so that accessing Nextcloud requires network access, not just grabbing a disk image.

Nextcloud and owncloud server side encryption

Both platforms offer their own server side encryption modules. Their main role is protecting data when you use external storage backends that the provider could access. Some key points:

  • Server side encryption does not hide file metadata such as file names, sizes and folder structure.
  • It can complicate deduplication and certain storage side optimisations.
  • Key management becomes critical; losing the keys means losing the data.

For deployments where you fully control both the VPS and the storage server (for example a dchost.com VPS running MinIO as your external storage), filesystem or disk encryption plus TLS is usually simpler and safer operationally. Reserve server side encryption for cases where you must treat the storage backend as untrusted or semi trusted.

Client side encryption and threat models

Some teams want maximum privacy even from their own server administrators. In that case, client side encryption (for example using the Nextcloud end to end encryption app or external tools like Cryptomator) ensures that files are encrypted before they ever reach the VPS.

The trade off is that server side features like full text search, antivirus scanning or online editing become limited or impossible on those encrypted folders. A realistic compromise is:

  • Use standard storage (with disk encryption) for collaborative team workspaces.
  • Use client side encryption for highly sensitive personal vaults, legal folders or HR archives.

Key management and backups of keys

Whatever encryption layers you enable, remember that keys are now part of your backup story. Losing keys can be worse than losing data, because it turns your careful backup history into unreadable noise.

  • Store LUKS passphrases and key material in a secure password manager plus an offline, printed or hardware backed emergency copy.
  • Back up Nextcloud or ownCloud encryption keys and configuration files along with the database and data directory.
  • Test restoring an encrypted backup in a lab VPS before you trust the design.

Backup and Disaster Recovery Architecture for Nextcloud and ownCloud

A Nextcloud or ownCloud instance with no backup strategy is simply a more complex USB stick. To make it a reliable storage system, you need a clear, documented backup and disaster recovery plan that another person on your team can follow on a stressful day.

3 2 1 as a baseline strategy

We recommend the classic 3 2 1 pattern:

  • 3 copies of your data (production plus two backups)
  • 2 different media or storage types (for example VPS disk and remote object storage)
  • 1 copy offsite (in a different data center or provider)

Our dedicated article on why the 3 2 1 backup strategy works and how to automate backups on a VPS walks through concrete retention policies and scheduling approaches you can reuse for Nextcloud data.

What exactly to back up

A consistent Nextcloud or ownCloud backup must include:

  • Application code: Usually reproducible from packages or git, but backing up the config file is crucial.
  • Config: config.php and any additional app specific configuration, cron setups and systemd unit overrides.
  • Database: MariaDB or PostgreSQL schema and data, including apps, shares, users and access control lists.
  • Data directory: The entire /cloud-data tree (or whatever your data dir is), including hidden files.
  • Encryption keys: Any LUKS headers, Nextcloud or ownCloud key storage, or external key files.

The golden rule is that you should be able to build a brand new VPS at dchost.com, install the OS and base packages, restore those backups and end up with a functioning instance without manual fixes inside the database.

Backup methods: file level, snapshots and database aware tools

On a single VPS, you will usually mix two techniques:

  • Filesystem or LVM snapshots: You take a snapshot of the data and database volumes, then back up from that snapshot. This minimises lock time and gives you a crash consistent view of the data.
  • Logical database backups: mysqldump, Percona XtraBackup or pg_dump, ideally run while the filesystem snapshot is active or in a short maintenance window.

Our deep dive on application consistent hot backups with LVM snapshots for MySQL and PostgreSQL shows exactly how to combine fsfreeze, LVM snapshots and database tools to get safe backups with minimal downtime.

Offsite backups to S3 compatible storage

Once you have local snapshots or backup archives on the VPS, you need to ship them offsite. Tools like restic or Borg combined with rclone or their own S3 backends make this straightforward and efficient.

We covered this pattern step by step in our guide on offsite backups with restic or Borg to S3 compatible storage. The same techniques work perfectly for Nextcloud and ownCloud. You get:

  • Client side encryption of backup archives
  • Deduplication across multiple backup runs
  • Configurable retention (for example 7 daily, 4 weekly, 6 monthly)

Ransomware resistant backups

Nextcloud and ownCloud are attractive targets for ransomware: attackers know they hold valuable files. That is why at dchost.com we strongly recommend at least one layer of immutable backup storage.

If your offsite backup target is an S3 compatible service that supports object locking, you can enable write once, read many semantics and time based retention. That means even if an attacker compromises the VPS and the backup credentials, they cannot delete or alter past backup objects until their retention window expires. Our article on ransomware proof backups with S3 Object Lock explains how to configure versioning, Object Lock and MFA delete in practice.

Testing restores and writing a simple DR plan

The only backup that matters is the one you can restore under pressure. For a serious Nextcloud or ownCloud setup we suggest:

  • Quarterly test restore into a separate test VPS using production like data sizes.
  • A short, written runbook: where backups live, how to get credentials, in what order to restore database vs data directory.
  • Documented RPO (how many hours of data you can afford to lose) and RTO (how long a full restore can take).

Security Hardening for a Nextcloud or ownCloud VPS

Even perfect storage and backup design will not help if the VPS is wide open. Thankfully, a handful of proven hardening steps dramatically reduce the risk profile of a Nextcloud or ownCloud deployment.

Base VPS hardening

We recommend going through a full hardening checklist on day one. That includes:

  • Disabling direct root SSH logins and using key based authentication only
  • Restricting SSH to specific IPs where possible
  • Enabling a firewall (ufw, firewalld or nftables) to allow only SSH and HTTPS
  • Installing Fail2ban to block brute force attempts on SSH and the web login page
  • Keeping the OS and PHP packages regularly updated

Our detailed VPS security hardening checklist walks through these settings on a typical Linux VPS. For Nextcloud and ownCloud, you simply add the application specific pieces on top.

Web server and PHP security for Nextcloud

  • Use separate vhosts or server blocks for Nextcloud, with a dedicated system user owning the files.
  • Limit PHP extensions to what Nextcloud or ownCloud actually require.
  • Set appropriate PHP limits (memory_limit, upload_max_filesize, post_max_size) based on the largest file size you expect, as described in our guide on choosing the right PHP limits.
  • Enforce security headers such as CSP, X Frame Options and Referrer Policy; our HTTP security headers guide provides ready to adapt examples.

Application level security

  • Enable two factor authentication for all admin and power user accounts.
  • Use strong password policies and, where possible, integrate with LDAP or SSO.
  • Review installed apps regularly; remove anything not in active use.
  • Keep Nextcloud or ownCloud itself updated to the latest stable branch.
  • Configure logging and alerting for suspicious logins or share changes.

Three Example Architectures You Can Borrow

To make all of this more concrete, here are three reference designs we commonly use on dchost.com infrastructure. You can treat them as starting points and adjust sizes as your usage grows.

1. Family and micro team cloud (up to 10 users)

  • VPS: 2 vCPU, 4 GB RAM, 200 GB SSD
  • OS: Debian or Ubuntu with ext4, single disk
  • Storage layout: Root filesystem plus separate /cloud-data directory on the same disk
  • Encryption: HTTPS with Let’s Encrypt, optional LUKS encryption for /cloud-data
  • Backups: Daily restic backups of database dump and data directory to remote S3 compatible storage, 7 day retention
  • Security: SSH locked to keys, Fail2ban, automatic security updates

This setup is simple, affordable and already far more robust than consumer cloud accounts when combined with good backup hygiene.

2. Small business or agency (20–80 active users)

  • VPS: 4 vCPU, 8 GB RAM, 500 GB NVMe (or more, depending on data size)
  • Storage layout: Separate virtual disks for OS (40–60 GB) and data (rest of capacity)
  • Encryption: LUKS encrypted data disk, full HTTPS with HSTS, optional server side encryption when using external storage providers
  • Backups: Local LVM snapshots every 4 hours, replicated nightly via restic to offsite S3 compatible storage with object locking
  • RPO/RTO: RPO 4 hours (snapshot interval), RTO a few hours to rebuild on a new VPS
  • Security: Full VPS hardening, 2FA mandatory for admins, regular update windows

Many agencies that already manage multiple client websites on our VPS platforms plug this design alongside their existing stacks, reusing the same monitoring and backup infrastructure. Our guides on monitoring client websites at scale and DNS and domain migration are often part of that broader picture.

3. Compliance conscious environment (legal, medical, finance)

  • Infrastructure: Dedicated server or colocated hardware in a chosen dchost.com data center, with RAID 10 NVMe for primary storage
  • Storage layout: ZFS or mdraid for data disks, separate filesystem for /cloud-data, frequent snapshots
  • Encryption: Full disk encryption on data pool, strict TLS configuration, optional client side encryption for selected folders
  • Backups: Local ZFS snapshots, replicated to an offsite backup VPS and to S3 compatible storage with object locking and long retention
  • Governance: Documented DR plan, regular restore drills, specific retention periods aligned with legal requirements

This is the kind of architecture where our experience with KVKK and GDPR compliant hosting across regions and with writing practical disaster recovery plans becomes directly useful.

Putting It All Together (And Next Steps on dchost.com)

If you step back for a moment, a secure Nextcloud or ownCloud deployment on a VPS is not magic. It is the combination of a few well understood building blocks: fast and reliable storage layout, encryption at the right layers, disciplined backups with offsite copies, and solid VPS hardening with monitoring. The difference between a fragile setup and a resilient one is usually in the details you decide to document and automate.

At dchost.com we design and run VPS, dedicated and colocation environments with exactly these concerns in mind. Whether you are just starting with a single SSD based VPS or planning a multi server private cloud with separate storage and backup tiers, the same principles apply. Define your RPO and RTO, choose a storage architecture that can grow, apply transport and at rest encryption sensibly, and treat your backups as a first class part of the system rather than an afterthought.

If you are unsure how many vCPUs, how much RAM or which disk type you really need for your Nextcloud or ownCloud instance, or if you want a second pair of eyes on your encryption and backup plan, our team can help you design a concrete architecture on top of our VPS, dedicated or colocation platforms. Build your private cloud on infrastructure you control, with a storage, encryption and backup strategy that lets you sleep at night instead of worrying about the next disk failure or ransomware headline.

Frequently Asked Questions

For a small team or family cloud (up to 20–30 active users), we usually suggest at least 2–4 vCPUs, 4–8 GB RAM and 150–500 GB of SSD or NVMe storage. If you plan to run heavy apps like full text search, antivirus or online office suites, 4 vCPUs and 8 GB RAM feel much more comfortable. As your user count and file sizes grow, disk IOPS become as important as raw capacity, so NVMe is often worth it. The good news is that on dchost.com you can start with a modest VPS and scale up vCPU, RAM and disk space as your Nextcloud or ownCloud usage increases.

Server side encryption and disk encryption solve different problems. Disk or filesystem encryption (for example with LUKS or ZFS encryption) protects data at rest if someone gets hold of the raw storage or a disk image. Server side encryption mainly protects data when it sits on external storage that you do not fully control. For most VPS deployments where you control both the VM and the storage, we recommend using HTTPS plus disk encryption as the baseline. Enable server side encryption only when you must treat the storage backend as untrusted, and make sure you have a solid backup and key management plan, because losing encryption keys can make all of your data unrecoverable.

The right backup frequency depends on your recovery point objective (RPO) – how many hours of changes you are willing to lose. Many small teams choose hourly or 4 hourly local snapshots and at least one full offsite backup per day. For busier environments, nightly full backups plus more frequent incremental runs to S3 compatible storage work well. Whatever you choose, follow a 3 2 1 strategy: three copies of data, on two types of media, with at least one copy offsite. Our guides on the 3 2 1 rule and on restic or Borg backups to S3 compatible storage show practical schedules and retention policies you can adapt.

Yes. Both platforms can connect to S3 compatible object storage as external storage, and you can also use S3 for offsite backups. A common pattern on dchost.com is to keep the main Nextcloud or ownCloud data directory on fast SSD or NVMe, then attach a MinIO based S3 backend for large archives or team folders that do not require the lowest possible latency. For backups, tools like restic or Borg can push encrypted archives to any S3 compatible endpoint, with optional object locking for ransomware resistance. Our production MinIO and offsite backup articles include configuration examples you can reuse for this kind of hybrid architecture.