SSD Nodes Learn 🎉 VPS from $5.50/mo
How to do am Matt ConnorBy Matt Connor · Updated 2026-08-13

Nextcloud Alternatives Wey Worth Self-Hosting

Pick Nextcloud alternatives by wetin you need: file sync, lighter server, object storage, or SFTP. See small VPS needs and the real cost of moving your files.

Which Nextcloud alternatives dey worth self-hosting?

The Nextcloud alternatives wey worth running na the ones wey remove the parts you never use. Nextcloud na file server, calendar, contact book, office suite, and app platform inside one PHP application, and you dey pay for all of dem on every page load. So choose replacement by naming the one job you still need, then check wetin e go cost to move the files wey you already get.

This guide arrange the options according to that job: sync only, sync with faster server, object storage with client on top, or plain remote file access. Each section explain wetin the server need for small VPS (virtual private server) and wetin go happen to your existing folder tree. If you dey come from Dropbox or Google Drive instead of Nextcloud box wey you already run, the wider roundup of self-hosted Dropbox alternatives start from that side instead.

Why Nextcloud dey slow for small VPS

The slowness get causes wey you fit point to, and if you understand dem, you go know whether moving go actually help.

Every page load dey occupy one PHP worker. Nextcloud own system requirements talk say memory per process na: 128 MB minimum, 512 MB recommended, as of August 2026. That one no be total for the server. Pool of ten workers na real memory budget for 2 GB plan, so admins dey reduce pm.max_children for PHP-FPM pool config, then requests dey queue behind the workers wey dey available. The interface dey feel slow while disk dey idle.

Database dey grow based on file count, no be bytes. The file cache table, oc_filecache under the default table prefix, dey keep one row for every file and folder inside every storage wey the server know. Photo library wey get 300,000 small files na large table; 300 GB video files inside 400 files na small table. Sharing, search and file scanner all dey read that table.

sudo mysql nextcloud -e 'SELECT COUNT(*) FROM oc_filecache;'

Count wey reach millions dey explain slow file list pass any disk benchmark. If your instance dey use different table prefix or PostgreSQL, adjust the query.

Background jobs dey compete with web interface. Nextcloud manual recommend system cron entry wey dey run cron.php every five minutes. Preview generation and file scanning dey run there, for the same CPU wey dey serve your browser.

Major upgrades na database migration. The instance dey enter maintenance mode and dey answer every request with Nextcloud is in maintenance mode, please try again later until migration finish. For small VPS wey get large oc_filecache, that window fit long enough make you notice am.

Phranay wetin you wan keep first

  • Sync one folder between machines wey you own, without web interface: Syncthing.
  • Sync for several people, with web interface, mobile clients and share links: Seafile.
  • Store plenty data for low cost and access am from scripts and backup tools: object storage plus client.
  • Read and write your files remotely without new server software: SFTP or WebDAV.
  • Edit documents together for browser, or share calendar between people: continue with Nextcloud, or accept to run two services.

Syncthing: file sync wey no need server application

Syncthing dey keep your files as ordinary files. E no get content database and e no get web interface wey dey serve your documents. Every device wey join folder dey hold complete copy, and Syncthing dey keep all the copies equal.

sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt-get update
sudo apt-get install syncthing
sudo systemctl enable --now syncthing@$USER
sudo ss -lntp | grep 8384

A line wey show 127.0.0.1:8384 mean say web interface dey run and e bind to localhost only, wey be wetin you want for public VPS. Use SSH tunnel reach am: ssh -L 8384:127.0.0.1:8384 you@your-vps, then open http://127.0.0.1:8384 for your laptop. If no listener dey for 8384, the service fail to start, and journalctl -u syncthing@$USER -n 50 talk why.

Resources. Syncthing no publish minimum memory figure. The number of files wey e index dey determine wetin e use, not their total size, because e dey keep one index entry per file for every shared folder. The first scan of large folder na CPU work: Syncthing dey hash every file before e fit compare anything. Expect the first pass to run for some time on shared vCPU, and expect memory to increase with file count, not with gigabytes.

Disk na the real cost. Server no dey save anything, because Syncthing no be server. Folder wey get 200 GB and wey VPS share with laptop need 200 GB for both sides. This na opposite of Nextcloud, where server dey hold everything and clients choose wetin to sync. Use selective folders and receive only folder for VPS if the VPS suppose be backup target instead of peer.

Migration na the reason to choose am. Point Syncthing to the directory tree wey you already get. No import, no upload and no conversion dey needed. Add the folder for VPS, add am for laptop with the same folder ID, and allow both sides converge. If the same file dey exist differently for both sides when dem first connect, Syncthing go keep both and rename one to filename.sync-conflict-20260809-142530-ABCD123.txt. To see those files during the first sync normal; e no mean say failure happen.

Wetin you give up. No accounts, no share links wey you fit send to other people, and no way to browse your files from phone browser. The original Android app no longer dey maintained by the project itself, and community fork dey continue the work, wey matter if mobile access na the main reason. The direct comparison of Syncthing and Nextcloud dey explain the feature gaps one by one.

Seafile: fast sync with lighter server

Seafile dey divide the work into two parts. Python web application wey dem call Seahub dey show the interface, while separate C process dey handle sync traffic. Your file transfers no dey pass through the web application. Na why large upload fit remain fast while another person dey click around the interface. Version 13.0 release on 5 January 2026.

sudo mkdir -p /opt/seafile
cd /opt/seafile
sudo wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/env
sudo wget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml
sudo wget https://manual.seafile.com/13.0/repo/docker/seadoc.yml
sudo wget https://manual.seafile.com/13.0/repo/docker/caddy.yml

Edit .env before you start anything. E dey set SEAFILE_SERVER_HOSTNAME, INIT_SEAFILE_ADMIN_EMAIL, INIT_SEAFILE_ADMIN_PASSWORD, SEAFILE_MYSQL_DB_PASSWORD and JWT_PRIVATE_KEY. Dem must be random string wey get at least 32 characters. That file still tells compose which downloaded YAML files to read, so the four downloads go work as one stack.

cd /opt/seafile
sudo docker compose up -d
sudo docker compose ps

Every container suppose report say e dey run. If container dey restart repeatedly, almost always na value wey dey miss for .env. sudo docker compose logs seafile go show which value be that.

Resources. Seafile documentation ask for at least 2 GB RAM and 2 core CPU above 2 GHz, as of August 2026. Treat this as the minimum for the whole stack, because the Docker deployment still starts MariaDB, the Caddy reverse proxy and the SeaDoc editor. Give am 4 GB if more than one or two people dey use am, or remove the optional containers.

The migration catch na the storage format. Seafile no dey keep your files as ordinary files. E dey split each one into blocks under /opt/seafile-data and record the tree for its database. You no fit point Seafile to an existing directory and make am appear as a library. So moving in means one complete upload pass over everything wey you own. This same design mean say you no fit get data out with cp. Recovery must pass through the server, seaf-fsck for consistency checks, or the read-only seaf-fuse mount.

rclone get native Seafile backend. This turns the upload into one resumable command instead of long drag-and-drop session.

rclone config
rclone copy /srv/files seafile:MyLibrary --progress

rclone documentation list Seafile 6.x through 9.x as tested. So run am against one small folder first and check the result before you push one terabyte through am.

Encrypted libraries na the feature wey make people move. You set the password inside the client, and the server stores blocks wey e no fit read. One important limitation: when you preview file from an encrypted library inside the browser, the client sends the password to the server for that session. So browser preview and zero-knowledge storage no fit work together at the same time. Seafile and Nextcloud feature comparison covers the remaining feature differences.

Object storage wey get sync client on top

If your goal na to store plenty bytes cheap and make scripts reach dem, run an S3 compatible object store and treat sync as separate tool. You go get durability, versioning, and protocol wey every backup tool already dey speak. You no go get user accounts for the file-server sense, or file manager wey anybody go enjoy. Self-hosted object storage with MinIO cover the server side.

rclone copy /srv/files s3remote:mybucket --progress
rclone check /srv/files s3remote:mybucket

rclone check dey compare both sides by size and hash, then e print how many files differ. Anything apart from zero errors mean say the copy never complete, so run copy again before you delete the source. Expect two things: object storage no get directories, only key prefixes, so empty folder no dey survive the copy; and if you increase --transfers together with the S3 chunk size, e go increase rclone memory use, so leave both for their default values on a 1 GB VPS.

Plain WebDAV or SFTP when na only remote files you need

The cheapest replacement plenty time na to add nothing new. If your VPS dey run OpenSSH, you already get file server. SFTP no need extra daemon, database, PHP, or upgrade wey fit break things on Sunday.

sftp you@your-vps
rclone mount sftpremote: ~/vps --vfs-cache-mode writes

For clients wey support WebDAV, including most phone file managers, rclone fit serve the same tree.

sudo apt install apache2-utils
sudo htpasswd -c /etc/rclone/htpasswd you
rclone serve webdav --addr 127.0.0.1:8080 --htpasswd /etc/rclone/htpasswd /srv/files

Bind am to 127.0.0.1 and put reverse proxy with TLS (transport layer security) for front. WebDAV basic authentication dey send password for every single request, so plain HTTP here mean say you dey hand over the password many times for one minute. Migration cost na zero, because the files no move at all. The cost be say sync and offline copy no dey: when the link drop, the files disappear from the client until e come back.

Wetin fit replace calendars, contacts and document editing

To comot from Nextcloud get cost for this part, and e good make we clear about wetin you lose. Calendars and contacts na CalDAV and CardDAV (calendar and contact synchronisation over HTTP), and Radicale na the small replacement. E dey store each collection as files for disk and e dey run with tens of megabytes.

sudo apt install radicale
sudo systemctl enable --now radicale
sudo ss -lntp | grep 5232

The package ship with /usr/lib/systemd/system/radicale.service and e default config for /etc/radicale/config, and e dey listen on localhost:5232. Radicale no get interface to edit events, so you go point phone or desktop client to am and edit there.

Browser document editing hard pass to replace. OnlyOffice Docs and Collabora Online na editing engines, no be storage: each one need host application wey hold the files and hand documents over. If you comot Nextcloud, you need another host, like Seafile with e own SeaDoc editor. The OnlyOffice and Collabora comparison explain which engine to run after you don decide wetin go host am.

Make una remain for Nextcloud if any of these apply

  • Plenty people dey share one calendar and one address book, with the same accounts wey dem use for files.
  • Una dey edit office documents for browser, for the same file, at the same time with another person.
  • Una need share links for each file wey get expiry dates and passwords, plus group permissions.
  • Your users no be technical people, and na the mobile apps dem dey actually use.

For these work, no lighter option dey wey fit do everything, so the correct thing na to fix the installation instead of abandoning am. Most slow instances dey run default PHP-FPM pool without memory cache configured, and Nextcloud admin overview page dey warn say the cache dey miss. Reducing the number of tracked files dey help pass any other single change, because na the file cache table dey grow. A Nextcloud installation for VPS with Docker, TLS and backups set am up in the way wey avoids most of these problems.

Wetin migration really go cost, option by option

  • Syncthing: no import. Point am to the tree wey you already get for both sides, then make e converge.
  • SFTP or WebDAV over the same tree: no import at all, because nothing dey move.
  • Object storage: one complete network copy, wey fit resume and script, and empty folders no go survive am.
  • Seafile: one complete upload into libraries, because the server dey keep blocks instead of files.

Any option wey you choose, first get one clean copy out of Nextcloud. User files dey under the data directory in plain form, with one folder for each user, so rsync of that tree na your source. Put the instance for maintenance mode before you copy, otherwise you go copy files while dem still dey write.

sudo -u www-data php occ maintenance:mode --on
sudo rsync -a --info=progress2 /path/to/nextcloud/data/ /srv/files/
find /srv/files -type f | wc -l

Compare that count with the same find for the source. If the count short, e usually mean say permissions stop rsync from reading something, and e go print those errors as e dey work.

Two traps dey inside that copy. Files wey Nextcloud reach through the external storage feature no dey inside the data directory at all, because dem dey for the remote system wey you configure Nextcloud to use. And if server-side encryption ever dey enabled, the files for disk na ciphertext, so occ encryption:decrypt-all must run before the copy; otherwise you go move one folder full of data wey nobody fit read. Check both before you cancel anything.

FAQ

Nextcloud get alternative wey go keep my existing folder structure?

Syncthing, plus any plain SFTP or WebDAV setup. Syncthing indexes the directory wey you point am to and keeps the same names and layout for every device, so no import step or upload dey needed. Seafile and object storage both need one complete upload pass, because neither of dem stores your data as ordinary files inside ordinary tree. Seafile splits files into blocks under its data directory, while object storage get keys instead of directories.

Seafile go run for 2 GB VPS?

Seafile documentation ask for at least 2 GB of RAM and 2 core CPU above 2 GHz, as of August 2026. Treat this as the minimum with no spare capacity, because the Docker deployment also runs MariaDB, Caddy and SeaDoc editor inside their own containers. For one user, e dey workable. For household or small team, move to 4 GB, or remove the SeaDoc container from the stack and give up in-browser document editing.

Why my Nextcloud web interface dey slow when downloads still dey fast?

Because the two paths dey do different work. Download streams bytes from disk, while page load runs PHP, queries the file cache table and often waits for free PHP-FPM worker. Count the rows for oc_filecache and check pm.max_children inside your PHP-FPM pool before you blame storage. Table wey get millions of rows plus pool of five workers go produce exactly this pattern.

I fit keep Nextcloud for calendars and move only the files?

Yes, and na often the cheapest answer. Sync your large folders with Syncthing or Seafile, and leave Nextcloud running for CalDAV, CardDAV and browser document editing. Because Nextcloud database grows with the number of files wey e dey track, na removing the big trees from am go make the interface quick again. Delete dem through the web interface or occ, not from the data directory on disk, otherwise the database go keep rows wey point to files wey no longer exist.