What Nextcloud 36 supports
| Component | Admin manual, Nextcloud 36 |
|---|---|
| OS | Ubuntu 26.04 LTS or RHEL 10 recommended; Ubuntu 24.04, RHEL 9 and Debian 13 supported |
| Database | PostgreSQL 18 or MariaDB 11.8 recommended; MySQL 8.4/9.7 supported; SQLite for tests only |
| PHP | 8.5 recommended; 8.3 and 8.4 supported |
| Web server | Apache 2.4 (mod_php or php-fpm) recommended; nginx with php-fpm supported |
| Memory | 128 MB per process minimum, 512 MB per process recommended |
| Architecture | 64-bit CPU, OS and PHP strongly recommended |
Per-process memory multiplies by concurrency: every simultaneous request is a PHP worker. Size RAM for the workers you allow plus the database, Redis and any Office or Talk containers, not for Nextcloud alone.
All-in-One or a manual stack
Nextcloud GmbH maintains the All-in-One (AIO) image as its official Docker route. A single master container manages the rest: Nextcloud with the high-performance files backend, PostgreSQL, Redis and APCu, and optional Nextcloud Office, Talk with a TURN server, Talk Recording, Imaginary previews, ClamAV, full-text search, Whiteboard and BorgBackup.
The manual route, an archive behind Apache and php-fpm with your own database, gives control over every version and config file and makes you responsible for each upgrade. On a machine dedicated to Nextcloud, AIO removes most of that work.
Installing AIO
- Point a DNS record at the server. A valid certificate on port 8443 and later the Apache container on 443 need a domain that resolves to it.
- Install Docker Engine from Docker's official instructions for your distribution. The AIO README warns against the snap build of Docker, which Ubuntu offers.
- Decide the data directory now.
NEXTCLOUD_DATADIRcan point at a dedicated array, and the README says not to change it after the first installation. - Run the master container, then open the AIO interface on port 8080 by IP address, not by domain, and follow it through domain validation and container start.
sudo docker run \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--env NEXTCLOUD_DATADIR="/srv/ncdata" \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
ghcr.io/nextcloud-releases/all-in-one:latest
Firewall: 80/tcp for ACME certificates, 8443/tcp for the AIO interface with a valid certificate, 443/tcp for Nextcloud (443/udp only if you want HTTP/3), and 3478 TCP and UDP when Talk is enabled. Keep 8080 limited to your own address, or close it once setup is done.
The disks under the files
A file server is judged by what happens when a drive dies. The AIO README recommends SSDs over hard disks and advises against SD cards. On a single disk, a failure is a restore; on a mirror, it is a replacement with the service still up.
The enterprise dedicated servers are built for that case: HPE ProLiant blades with a RAID controller that has a flash-backed cache, hot-plug drives that come out of the front while the system runs, registered ECC memory up to 1 TB, and an iLO console that works when the operating system does not. Under the SLA, a failed part is swapped inside four hours of the report.
Upgrades (drives, memory, a second CPU, port speed) go into this machine and keep its address. Racked machines go live about 30 minutes after the order clears review; a specific build takes 4-24 hours. Other storage classes, such as NVMe, are on the full catalogue.
Backups are a separate copy
RAID keeps the service running through a disk failure. It does not undo a deleted folder, ransomware on a synced client, or a broken upgrade. AIO's BorgBackup integration writes deduplicated backups to a target you choose; make that target another machine or another city, and test a restore before you rely on it.
Running it
- Update from the AIO interface, which updates the containers together; read the release notes before a major version.
- Turn on two-factor authentication for every account with admin rights.
- Watch the admin overview's security and setup warnings after each upgrade.
- Keep the host's SSH on keys, and the Docker socket off the network.
When not to self-host
A handful of users with a few gigabytes each will not use what a dedicated server gives them, and a family can be served by a small cloud VPS. The machine earns its place when the data is large, the users many, or the files must stay on hardware you can name.
Questions
How much RAM does Nextcloud need?
The admin manual recommends at least 512 MB per PHP process, with 128 MB as the minimum. Real memory use is that figure times the concurrent requests, plus the database, Redis and optional Office or Talk containers.
Is Nextcloud All-in-One production-ready?
It is the Docker image Nextcloud GmbH maintains as its official route. It runs PostgreSQL, Redis and APCu for you and updates the containers together from its interface.
Which database should I use?
PostgreSQL 18 or MariaDB 11.8 are the recommended versions for Nextcloud 36. SQLite is only for testing and minimal instances. AIO uses PostgreSQL.
Can I keep the files on a separate array?
Yes. Set NEXTCLOUD_DATADIR when you first start the AIO master container. The README warns not to change it after the initial installation.
Which ports must be open?
80 for certificates, 8443 for the AIO interface, 443 for Nextcloud itself and 3478 TCP and UDP for Talk. 8080 serves the interface with a self-signed certificate and should not stay open to everyone.
Is RAID a backup?
No. RAID survives a dead disk; a backup survives deletion, corruption and a failed upgrade. Use AIO's BorgBackup to a second location and test restores.