Hardware requirements Intel NUC

Hello Nextcloud users and developers!

I’m thinking of creating the following setup:

  • Intel NUC
  • Fedora CoreOS
  • Nextcloud HUB (Docker image)
  • LibreOffice or Collabora Online

The goal is to create a light weight and modern personal home server. I’m thinking of documentation all the steps so that it will be easier for others to create the same setup. I lot of things will be new to me (Fedora CoreOS, Docker.).

Number of users that will be using the server:
Me, and maybe a few others (let’s say four).

My questions:

  1. What minimum RAM do you recommend?
    Here the documentation says 512 MB and here 8GB.

  2. Which CPU do you recommend?
    Is and i3 enough? Or should I go for an i5 or an i7?

  3. Does the generation of the CPU matter?
    Do I need the buy the latest generation (11) or is an older one (generation 7 or 8) also good enough? (Older systems are cheaper.)

  4. Is Nextcloud Talk included in the Nextcloud Docker image?
    Or in other words: which products are included in the Docker image?

Thanks in advance for all the information!

When just starting with building a home server, I’d recommend to consider virtualization…

The simplest way: download the ISO and install ESXi on a USB stick plugged into your NUC.
The free version has limited features (after 60 days) but good enough for a home server.
This way you can use the already created VM (from Hansson)…

The primary advantage of a VM is its flexibility…
You can assign different resources - RAM, CPU - to it depending on need.
You can move the VM to any other hardware running ESXi, etc.
And you can run other servers on the same NUC (!)…

To address your questions: needed resources for an NC server depend on what you’ll use it for.
I’d say a 4GB/i5 will do just fine for 4 people… CPU generation hardly matters…

If you want to add video conferencing with many attendees, you might want to get an 8GB/i7…
Again, in a VM setup this can be flexible.

1 Like

Hello Henry,

Thanks for your advice!

I prefer to only use open source software so using ESXi is no go for me. ESXi should also not be necessary because virtualization is built in the Linux kernel (KVM). Does the virtual machine work with KVM?

Fedora CoreOS is a new type of Linux system (using rpm-ostree) and specialized in containerization. That’s why I’m thinking of using the Docker image.

Do you think an Intel i3 processor would also be enough? They are a little bit cheaper.

Nothing wrong with that…:slight_smile:

Still, try virtualization in the form of Proxmox then
https://www.proxmox.com/en/

1 Like

I would second that. I use Proxmox for quite a while and it gives you a lot of flexibility, and an easy to use webinterface for managing VMs (KVM/QEMU) and LXC Containers. Docker is not supported out of the box but you can of course use it in a VM or even install it directly on the host, since Proxmox is based on Debian. However I would recommend using a VM for Docker.

The advantage of VMs over a baremetal installation is that you can easily make backups of the entire system. If you use ZFS you can also make snapshots of the VMs. Other advantages are of course the portability and the flexibility in resource allocation as @henry has already mentioned.

A modern i3 with 4 cores should be fine for the requirements you list. But I would recommend at least 16GB RAM, and if you want to run additional VMs and/or use ZFS, I would recommend going straight up to 32GB.

1 Like

First of all, don’t use Fedora. Its a very short life desktop-centric OS. What you’re looking for is EL8. I would use Rocky Linux; https://rockylinux.org/download

Rocky Linux is what CentOS used to be, and run by the SAME PEOPLE as CentOS used to be run by before Red Hat / IBM bought them out. Its also protected to a great extent from the fate of CentOS.

Its basically a bug-for-bug identical downstream of Red Hat Enterprise Linux 8. This is perfect for running a server without the cost/overhead of subscribing to RHEL.

Second, why docker? Just drop Nextcloud into a virtual server and call it a day. Its real easy to set up and doesn’t need all the extra overhead.

  1. More RAM is better. If you plan to run the talk HPBE, like you mention, 8GB is recommended. More than that is even better, especially if you’re going to have more users, or other things running on the server. 512 MB really is a bare minimum.

2-3) Again, more CPU is better. But again, it depends on what you’re planning to use it for. Nextcloud will run in a basic fashion on a trinket-class ARM (raspi).

  1. Who cares? User-button → Apps → Featured → Talk → Install. Done.
1 Like

Thanks everybody for your comments!

What I got:

  1. Minimum RAM
    At least 4GB but the more is the better.
    When looking for Intel NUCs I see that 8GB most of the time is the minimum, so I think I will go for that.

  2. Recommended CPU
    Difficult to tell. The ‘higher’ the better of course.
    I think I will buy an Intel NUC with an i3 processor because they are cheaper. After that I can see how it runs.

  3. Generation of the CPU
    Doesn’t really matter but of course every new generation is a little bit faster.

  4. Is Nextcloud Talk included in Nextcloud HUB?
    Unsure but it doesn’t matter because it’s easy to install.

About the discussion of which distribution to use and what kind of virtualization: I don’t know what is ‘better’: full virtualization (virtual machine) or just application virtualization (docker). I have the idea that with both you can achieve the same thing but with application virtualization you don’t have the overhead that you have with full virtualization (the guest kernel). Fedora CoreOS comes with Podman out of the box so I don’t need to install any extra software to run containers.

I have only worked on my desktop with virtual machines (GNOME Boxes) and container images (docker, toolbox, podman) and working with them on a server will be new to me. So I’m still a little bit nervous about how it all will work out.

Sorry, a little bit of clarification, when I said virtual server, I really mean virtual HOST. This is a function of the web server, not of hardware virtualization or any of that kind of high overhead crazyness.

Just install your server OS, and in it install apache, php, and mariadb, add a virtualhost “nextcloud.mydomain.com” to your apache config, and install nextcloud using the web installer, following the instructions.

1 Like

I don’t think Talk is included in the core package.
But like Larry mentioned, it’s just an app, installs in a minute…

You need to clarify how you plan to use Talk.
What it does really well is one to one conversation between 2 people on the same network.
The moment you start increasing the number of attendees, linking people from homes (behind firewalls/routers, etc.), Talk by itself won’t do. Around 5 users Talk falls apart…
And it gets complicated fast…

There are three levels of “complication” - STUN, TURN and Signaling servers.
STUN is included in Talk setup. Turn can be had with an open-source coTURN server.
Signaling server is the one guaranteeing scalability. And they are not even mutually exclusive…

To get Zoom-like scalability with 10-50 users, you’ll need a dedicated signaling server.
The so-called high-performance backend (HPB) from spreed is now open sourced and you can make it work with Nextcloud Talk. But the know-how is not available from Nextcloud documentation. There are multiple guides how to accomplish that, but the easiest is Hansson’s VM that installs and configures HPB on request during install. It works well…

If you need more than just a basic 1-to-1 communication tool, read this

You can also replace Talk with BBB or Jitsi and install the linking app… Lots of options…

2 Likes

Thanks, I now understand what you meant.

Thanks for the documentation!
When I have installed Nextcloud and all the tools, I will use the mentioned script!