Linux Tutorials

Nextcloud vs ownCloud vs Seafile vs Syncthing vs OpenCloud

Every Nextcloud vs ownCloud vs Seafile thread ends up arguing about RAM, and most of the numbers come from vendor pages. We wanted our own figures first, because this choice decides what runs on your home server for years. An idle Nextcloud used far less memory than its reputation suggests, and Seafile used the most. The “OpenCloud needs about 100 MB” claim also holds only until you add the office suite its compose file ships with.

Original content from computingforgeeks.com - post 19177

This comparison covers Nextcloud, ownCloud (Classic and Infinite Scale), OpenCloud, Seafile and Syncthing. It explains how ownCloud 10, oCIS and OpenCloud relate and puts the measured RAM, disk and startup time of each stack in one table. For Cloudreve, FileBrowser or Immich, see our Cloudreve and Immich comparison. We ran all six stacks one at a time on the same Ubuntu 26.04 VM in our homelab in October 2026, and every RAM figure below comes from that box.

Which one should you pick?

Pick by the job the server has to do, not by which project sounds lightest. Do you need calendars, contacts, chat and office editing behind one login? Then the decision is already made. If you only need files on every machine, a full cloud suite costs RAM and patching time for features you will never open. Our picks by job:

  • Family or small office Google Drive replacement: Nextcloud
  • Light file sync and sharing on small hardware: OpenCloud or oCIS
  • Large libraries with many small files: Seafile
  • Folders mirrored between your own devices: Syncthing
  • An existing ownCloud 10 server: move to Classic 11, oCIS or OpenCloud

Nextcloud wins on breadth, with calendar, contacts, office and the biggest app catalog. oCIS idles at 95 MiB in one container. OpenCloud plus the Traefik and Yjs containers its compose adds comes to about 151 MiB, before Collabora. Seafile is fast with big libraries but was the heaviest stack we ran. People most often get Syncthing and ownCloud wrong. Syncthing has no user accounts, no web file browser, no share links and no central copy unless you dedicate a machine to it. ownCloud is now three products under one name, and nobody should start a new server on ownCloud 10.

Nextcloud vs ownCloud vs Seafile vs Syncthing vs OpenCloud at a glance

The table lines up what each project is built on and what you get on day one. RAM is the idle total we measured for each official Docker setup, database and cache containers included:

ProjectServer stackDatabaseIdle RAM (measured)Office editingCalDAV / CardDAVClients
NextcloudPHP + ApacheMariaDB, MySQL or PostgreSQL332 MiB (3 containers)Nextcloud Office (Collabora) or OnlyOfficeYes, Calendar and Contacts appsDesktop, Android, iOS
ownCloud ClassicPHPMariaDB, MySQL or PostgreSQL203 MiB (3 containers)Collabora or OnlyOffice through appsDAV endpoints in coreDesktop, Android, iOS
ownCloud Infinite Scale (oCIS)Go, single binaryNone95 MiB (1 container)Collabora or OnlyOffice over WOPINot built inDesktop, Android, iOS
OpenCloudGo, fork of oCISNone590 MiB with Collabora, about 151 MiB without it, 91 MiB for OpenCloud itselfCollabora or Euro Office overlays in the official composeOptional Radicale overlayDesktop, Android, iOS
Seafile CEC core + Python web appMariaDB698 MiB (4 containers)SeaDoc, OnlyOffice or Collabora integrationNoDesktop, Android, iOS
SyncthingGo, peer to peerNone25 MiB (1 container)NoNoDesktop, community Android fork

Most of the RAM gap comes from the database. The PHP servers carry MariaDB at 99 to 125 MiB on their own, while oCIS, OpenCloud and Syncthing keep metadata on disk and run as one process. Seafile goes the other way, because its database used only 109 MiB but the Seafile container sat at 571 MiB idle before we uploaded a single file.

Measured RAM and disk footprint of each stack

All six stacks ran on one Proxmox VM called nas01 (Ubuntu 26.04.1, 4 vCPU, 8 GB RAM, no swap, Docker Engine from the Docker apt repository). We ran one stack at a time and removed it with its volumes before starting the next. Each came from the official images and compose files, with an admin account created so the app was fully set up:

Stack (version tested)Idle RAMPeak during 1 GiB upload120 s after uploadUpload timeImages on diskReady after start
OpenCloud 8.1.0 + Collabora + Traefik + Yjs590 MiB750 MiB625 MiB10.8 s2.66 GB8 s (web UI)
oCIS 8.2.295 MiB190 MiB127 MiB5.9 s331 MB7 s
Nextcloud 35.0.2 + MariaDB + Redis332 MiB377 MiB363 MiB8.6 s2.75 GB51 s
ownCloud Classic 11.0.1 + MariaDB + Redis203 MiB252 MiB275 MiB11.2 s2.55 GB26 s
Seafile CE 14.0.9 + MariaDB + Redis + Caddy698 MiB856 MiB780 MiB17.0 s2.91 GB44 s
Syncthing 2.1.725 MiB27 MiB28 MiB4.2 s to scan72 MB1 s

Idle RAM is the median of three docker stats readings taken 20 seconds apart, after 300 seconds untouched. Docker reports cgroup memory minus inactive file cache, so it is close to the memory you actually lose to the app. The upload was one 1 GiB random file sent by the admin user from the VM itself, so the network is out of the picture. Nextcloud and the three ownCloud-family servers took it over WebDAV, and Seafile through its web API because SeafDAV is off by default. Syncthing has no upload path, so we copied the file into its folder and timed the scan. We sampled peaks about every 2 seconds, so treat them as lower bounds, and memory measured after the upload can exceed the sampled peak, as it did for ownCloud Classic.

The reading that surprised us most was the OpenCloud stack at idle:

OpenCloud compose stack docker stats idle memory per container on Ubuntu 26.04

OpenCloud itself idled at 91 MiB, close to the “about 100 MB” that a managed-hosting vendor’s comparison gives for it. Collabora, which the official compose starts alongside it, used 438 MiB with no document open. The Yjs relay for real-time collaborative editing added another 41 MiB, and Traefik 18 MiB. A fair comparison with Nextcloud is therefore about 151 MiB for OpenCloud without the office suite (OpenCloud, Yjs and Traefik added together) and 590 MiB with it. The same vendor table puts Nextcloud at 1 to 2 GB (PHP-FPM, database and Redis), yet our empty single-user Nextcloud on the Apache image used 332 MiB with its database and Redis. Nextcloud grows with users, apps and PHP workers, so that range likely describes a loaded server rather than a fresh install.

Disk tells a different story. The Nextcloud images take 2.75 GB. Its app volume held another 906 MB right after setup, because the image copies the whole code tree into the volume on first start. oCIS needs 331 MB of image and about 1 MB of data. The OpenCloud image is 304 MB, but Collabora alone is 1.84 GB. The single binaries also start fastest, with oCIS answering WebDAV after 7 seconds while Nextcloud spent 51 seconds in its first-boot installer.

1. Nextcloud: the full self-hosted suite

Nextcloud forked from ownCloud in 2016 and is the safe default if you want more than files. The current major is Nextcloud 35 (Hub 26 Summer), running on PHP 8.3 to 8.5 with MariaDB, MySQL or PostgreSQL. You enable Calendar, Contacts, Talk and Nextcloud Office from the admin panel, and those apps are why families and small offices end up here.

The Files app below comes from the test stack, with sample folders plus the skeleton files every new user gets.

Nextcloud 35 Files app listing folders and files

You pay for that breadth in moving parts. A working Nextcloud needs PHP, a web server, a database, Redis for file locking and a background job runner, and each one needs patching and backups. The official Docker README example does not set REDIS_HOST, so its Redis container sits unused until you add that variable, as we did. For a native install without Docker, follow our Nextcloud on Ubuntu 26.04 guide.

Skip Nextcloud if you will never open the calendar or office apps. You would be carrying a database and a PHP stack for a sync job that OpenCloud or Seafile does with fewer components.

2. ownCloud Classic, oCIS and OpenCloud: how they relate

The name “ownCloud” now covers three code bases, and most old tutorials describe the one you should not start on. In the order they appeared, the pieces are:

  1. ownCloud 10, the PHP code base Nextcloud split from in 2016 (at version 9)
  2. ownCloud Classic 11, its July 2026 successor, supported only on Docker
  3. ownCloud Infinite Scale (oCIS), a Go rewrite with no database
  4. OpenCloud, the oCIS fork launched in January 2025

ownCloud 10 still gets patch releases, and Classic 11 needs PHP 8.3 or newer. Kiteworks bought ownCloud in November 2023, and the Heinlein Group then started OpenCloud with former ownCloud developers. Both Go servers use the Apache-2.0 license and have kept shipping, so they are now separate products with one architecture. On Docker Hub, owncloud/server:latest still points at the 10.16 line, so a pull without a tag gives you ownCloud 10. Pin owncloud/server:11.0.1 or later. If you run ownCloud 10 today, choose Classic 11 to keep your PHP apps, or oCIS and OpenCloud for the lighter Go server without the classic app ecosystem.

Classic 11 looks and behaves like the ownCloud most people remember. At 203 MiB idle with MariaDB, it was lighter than Nextcloud in our run.

ownCloud Classic 11 files view with folders and files

oCIS runs as one container with no database. At 95 MiB idle, it was the lightest complete web file server stack in the test, although the OpenCloud process alone used 91 MiB before its compose added more containers. OpenCloud inherited the same web interface, so the two look almost alike.

ownCloud Infinite Scale oCIS 8.2 personal space file list

Both Go servers organize files into spaces, with a personal space per user plus shared project spaces, instead of one big folder tree. Plan for that before you migrate a team that relies on deep shared folders, because the old structure does not map one to one.

3. OpenCloud: the Infinite Scale fork

Choose OpenCloud if you want the oCIS design from a vendor other than Kiteworks. A minor release lands roughly every three weeks, and the official opencloud-compose repository wires it up with Traefik, Let’s Encrypt and Collabora, plus optional overlays for Radicale (CalDAV and CardDAV), Keycloak and antivirus. The project’s own requirements page asks for 512 MB of RAM for up to 10 users and 8 GB for about 1,000 users.

OpenCloud 8.1 web UI personal space with folders and files

The footer in that screenshot reads “OpenCloud 8.1.0 rolling”, and the word rolling matters. OpenCloud publishes two image channels. The 8.x releases exist only in the rolling one, which opencloud-compose pulls by default.

Error: “docker.io/opencloudeu/opencloud:8.1.0: not found”

We hit this after pointing the compose file at the production image, since the .env comment says production releases live in opencloudeu/opencloud. Docker refused the pull with this message.

Error response from daemon: failed to resolve reference "docker.io/opencloudeu/opencloud:8.1.0": docker.io/opencloudeu/opencloud:8.1.0: not found

The production repository tops out at 7.2.4, published in August 2026, while 8.0 and 8.1 are only tagged in opencloudeu/opencloud-rolling. You have two valid choices: stay on the 7.2 production line if you want the slower, supported channel, or set OC_DOCKER_IMAGE=opencloudeu/opencloud-rolling and accept that you are running the fast release train. We measured the rolling 8.1.0 image, since that is what the compose repository ships.

On first start, the Traefik ACME registration also failed with contact email has forbidden domain "example.org", because the example .env leaves the contact address at a placeholder. Set your own address before the first docker compose up, or Traefik serves its self-signed default certificate.

4. Seafile: block sync for big libraries

Seafile takes a different approach from everything above. It splits files into blocks inside “libraries” and syncs only changed blocks, so large folders with many small files sync quickly. A library can also carry its own password, which the desktop client uses to encrypt files before they leave your machine. In return, your files are not stored as plain files on the server disk. A backup has to copy the Seafile data directory and its database together.

Seafile 14 My Library view with folders and files

It was also the heaviest stack we measured: 698 MiB idle across four containers, with the Seafile container alone at 571 MiB, which is consistent with the 2 GB of RAM recommended in the Seafile Docker setup manual. Two defaults surprise people coming from Nextcloud. WebDAV (SeafDAV) stays disabled until you set ENABLE_SEAFDAV=true in the .env file and recreate the stack with docker compose up -d, because a plain docker compose restart, which the Seafile WebDAV page suggests, does not pick up changed variables. The official .env also lists the SeaDoc editor in COMPOSE_FILE, so it starts unless you remove it. We left SeaDoc out, so the numbers above are for Seafile without its document editor. For a step-by-step setup, see the Seafile Docker install guide.

Seafile returns an empty page on localhost

Our first readiness check requested http://127.0.0.1/ and got HTTP 200 with an empty body. The token request after it failed with JSONDecodeError: Expecting value: line 1 column 1 (char 0). The Caddy proxy in the official compose only routes the hostname set in SEAFILE_SERVER_HOSTNAME, so any other name falls through to an empty response. Use that exact hostname in health checks and API calls.

5. Syncthing: sync without a server

Syncthing keeps folders identical across your devices over an encrypted peer-to-peer link, and nothing else. It has no accounts, no web file browser for other people and no share links. That is why it idled at 25 MiB, and also why it does not replace Nextcloud. For a central copy, run Syncthing on a home server and let every laptop and phone sync with it, as our Syncthing on Ubuntu guide sets it up.

Syncthing 2.1 web GUI showing default folder and this device

Mobile support is the weak spot. The official Android app was discontinued with the December 2024 release, so Android users now run the community fork researchxxl/syncthing-android, which tracks Syncthing releases. No official iOS app exists either. On the server, our Syncthing container started with no folder configured, so you add the first folder in the GUI or through the REST API.

6. Size the home server for the stack you pick

The idle numbers set the floor, not the target. Every stack grew under a single 1 GiB upload, and real use adds thumbnails, search indexing, previews and more users. Our own RAM guidance per stack, with headroom above the vendor minimums:

  • Syncthing, oCIS or OpenCloud without Collabora: 2 GB
  • Nextcloud or ownCloud Classic with MariaDB: 4 GB
  • Seafile, or any stack plus Collabora: 4 GB recommended, 8 GB comfortable
  • Disk: 3 to 4 GB for images and app files, about 6 GB with Collabora

Storage matters more than CPU for all of them, because the data outgrows the app within weeks and none of these servers is CPU bound at home scale. If the files are going onto a dedicated NAS, our 8-bay NAS picks cover enclosures with room to grow, and the home server CPU guide helps if Collabora, thumbnails or a media server will share the same box. For office editing on a separate host, the Collabora Online setup keeps those 438 MiB off your file server.

Keep reading

Configure Samba File Share on Debian 13 / 12 Debian Configure Samba File Share on Debian 13 / 12 Backup and Restore Linux Systems with Timeshift Debian Backup and Restore Linux Systems with Timeshift Best NAS Hard Drives for 2026: WD Red vs Seagate IronWolf, Price per TB Storage Best NAS Hard Drives for 2026: WD Red vs Seagate IronWolf, Price per TB OpenCloud vs ownCloud vs Nextcloud: Tested on Identical VMs Cloud OpenCloud vs ownCloud vs Nextcloud: Tested on Identical VMs Install OpenCloud with Docker Compose, Traefik and Collabora Containers Install OpenCloud with Docker Compose, Traefik and Collabora Enable REST API Access in Ceph Object Storage Cloud Enable REST API Access in Ceph Object Storage

Leave a Comment

Press ESC to close