[Build help] Home server, emphasis on Nextcloud performance - where to start?

Hi guys, I’m reading a TON of threads here but I’ll be honest, I’m still out of my element. I converted a little m93p tiny desktop into being a Ubuntu Server last year, but need an upgrade in storage space and Nextcloud performance.


  1. Do you think I should look at NAS Killer 4 or 5?

  2. I’m totally open to a prebuilt - is the Dell Poweredge T110 II still recommended?

  3. Your recommendation is to run unRAID, correct?

  4. I have two 8 TB WD Easystores I will shuck for this build. What other drives do I need?

  5. I see a lot about refurbished SAS drives here. What is the benefit to SAS drives?

Server requirements:

A. Nextcloud - my family is heavily dependent on this. I replaced all our cloud storage with Nextcloud. I’d like to optimize the server to run NC well. Some of my folders take forever to load! I currently run Nextcloud in the linuxserver.io SWAG docker image.

B. Duplicacy backs everything up. It runs within docker.

C. NAS disk storage for photos, documents, and Plex media

Some bonus “would be nice” plans:

D. Run simple VMs for to increase my Linux / sysadmin / coding skillset

E. Run a self hosted photo server. Something like photostructure or photoprism. I have about 2 terabytes of family photos. CPU intensive for the initial scan / thumbnail generation, but after that the potential bottleneck just becomes disk access to the actual photos.

Stretch goal:

F. Stream video games from Steam, etc to family laptops within my LAN. I think Team Fortress is the highest-requirement game we have. I’m looking at the unRAID gaming server guide. Should this be a separate build?

What I do not need it to do:

G. Plex - already offloaded to an HP S01. Love the guide here! Very happy with it.

H. pfSense - I think? I run an ASUS router flashed with Asuswrt-Merlin and I’m happy with it.

ANY advice, even if it seems obvious, is appreciated! Thanks!

Current setup:

  • m93p mini desktop
  • i5-4570T
  • 8 GB RAM
  • 1 TB SSD internally, random external drives for data
  • running Ubuntu Server

What’s your current nextcloud running on?

Nextcloud is running on a Lenovo m93p with an i5-4570T, 8 GB RAM. All the Nextcloud appdata resides on a 1 TB SATA SSD. (Come to think of it I was suggested to add Restic, but haven’t looked into it yet.)

Edit: added current build to my post

Random External drives is not enough detail. I’d suspect if they’re external you have them connected via USB or something? Are they on a USB hub?

You’re definitely going to have better luck with something dedicated to the task (and not running permanent storage on external devices).

Unraid is a fan favorite for the features it provides and ease of use. All it needs is a USB for the Unraid install and as many drives as you care to feed it.

Oh sorry. They’re two 2.5" portable drives attached by USB cables to the USB 3.0 ports of the m93p. I have them auto mounted by their UUID in fstab.

For more detail, one drive is a Seagate 5 TB which holds about 2 TB of personal photos and Plex media. The other is a WD 4 TB which is my duplicacy storage for local backup.

I am not a fan of depending on USB cords for keeping my storage up and on the network.

I just obtained two WD 8TB drives I’d like to move everything to. Just need to build up a NAS around them first.

I’m a noob with nextcloud but do you have caching set up like redis?

I do not. Not sure how to plug redis into my docker-compose file.

I keep googling but it seems no one integrates redis into the Linuxserver SWAG image, which seems weird to me.

It looks like unRAID has a plugin for both nextcloud and redis that I plan to use on the system I am trying to build here.

Hmm yeah. I was having trouble setting up nextcloud and I ended up just setting it up bare metal. Mainly because that’s what all the documentation was for. Of course that meant I’ve had to set up apache, which was pretty lame.

Did you set up redis as well?

I set up npcu only I think. My use is trivial though.

I think getting a directory listing on a big folder takes a long time… I wonder if hosting only the db or someother bit on SSD would help, or if id need to park all the data on SSD.

My database and appdata are on SSD but populating an and making previews for a large directory still takes time. The web view seems to handle it the best. The mobile app is where it gets slow. Not a big deal though and still useable.

I’m surprised there isn’t more homelab discussion of optimizing Nextcloud. It’s almost as good as the big cloud providers, large directories and photos are the only hiccups.

You’d think a lot of these guys would be using Nextcloud and tweaking their servers to handle it. Maybe they just VPN into their home networks and access their data directly?

nextcloud can be CPU heavy either for php or anti virus (if you run the plugin in nextcloud). Some tips you can do are have multiple dedicated servers for each part.

CPUs best for php are typically very highly clocked and have fewer cores. For instance for a family of 4 i would suggest 6 cores at high clock speeds if all 4 are active users, though you can get away with 4 high clocked cores.

with anti virus its more of total compute power. So if you use this you need to pick your choice on a balance.

I also suggest using lighter components for nextcloud itself. take a look at openlitespeed. mariadb is a good choice for small databases.

Think of nextcloud as another php application.