How Do I Run Next Cloud on Brand New SBC Hardware?

Hello I want to run NextCloud on this brand new rock5 chip hardware that this company called functionland came out with. This is the system info:
$cat /etc/os-release
PRETTY_NAME=“Armbian 23.8.3 jammy”
NAME=“Ubuntu”
VERSION_ID=“22.04”
VERSION=“22.04.3 LTS (Jammy Jellyfish)”
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
UBUNTU_CODENAME=jammy
ARMBIAN_PRETTY_NAME=“Armbian 23.8.3 jammy”

$uname -a
Linux fulatower 5.10.160-rk35xx #1 SMP Mon Jun 19 19:47:58 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux

When I tried installed it by using:
curl -sSL https://raw.githubusercontent.com/nextcloud/nextcloudpi/master/install.sh | sudo bash

The error says:
“Installing NextCloudPi…
ERROR: distro not supported:
Armbian 23.8.3 jammy \l”

Are there anyways to get around this?

It seems like NextcloudPi (or at least this specific install script) requires Debian 11 “Bullseye” in order to work…

https://github.com/nextcloud/nextcloudpi/blob/master/etc/library.sh

function check_distro()
{
  local cfg="${1:-$NCPCFG}"
  local supported=$(jq -r .release "$cfg")
  grep -q "$supported" <(lsb_release -sc) && return 0
  return 1
}

https://github.com/nextcloud/nextcloudpi/blob/master/install.sh

# check distro
check_distro etc/ncp.cfg || {
  echo "ERROR: distro not supported:";
  cat /etc/issue
  exit 1;
}

Probably not… I mean, you could of course just remove the check from the script, but I assume there is a good reason why this check was added, which means that if you run this on Ubuntu, it would most likely cause issues further down the road, or maybe it won’t even install properly. So I would recommend you to install Debian 11 on your device.

Or you could try another appliance / installation method like Nextcloud-AIO or the Snap package. Unfortunately I don’t know if these are arm64 compatible.

If none of this works, there’s of course always the possibility of a manual installation.

Good luck.

1 Like

“cheat”. Setup LXD on the brand new Ubuntu and spin up a debian 11 container.

2 Likes

Didn’t think of that. Despite I’m not a big fan of Cannocal, I must admit that, from what I saw, LXD is a very slick system, and it has probably a few other advantages as well, if you install it in a container, like snapshots and easy backups: How to back up instances - Canonical LXD documentation

1 Like

This worked for me! I ended up trying the docker installation of NextCloud from this url: How to Install the Nextcloud All-in-One on Linux - Nextcloud. I got dissuaded at first, bc even after I got a freedns at the site recommended (duckdns.org) I was getting an error, and I didn’t know what to make of it.

I switched to trying the Snap install, and I found this youtube guide. https://youtu.be/QQFFrcXFvA4?si=8XrEiITeaRjrJ-TV

In the comments I saw that you can just go to the browser for a guided setup and it was the exact same thing as the docker install guide.

So I found out how to port forward on my router. And now I have sucessfully set up NextCloud on my new hardware. This is the site for the new sbc. Functionland - Decentralized Cloud Alternative (fx.land)
Thanks for the recommendations.

PS: I tried doing the lxd set up first and I also got dissuaded after it asks for an ipaddress or dns name? Whatever I tried didn’t work. I would love to learn how to get past that and set it up that way too?

1 Like

Well, when you have successfully been through the lxd init, you basically has all you need.

lxd launch debain-of-your-choice

Add two proxy devices for http and https:

listen on tcp:0.0.0.0:80 and tcp:0.0.0.0:443

Then you will have to setup the needed proxy devices for whatever else you are needing, like talk and maybe CODE. However the difference in regard to the official docker instances, is that the LXC containers acts like full blown OS itself, hence you have the ability to do the native nextcloudpi install script, if that is what you desires.

Docker vs LXD/LXC is a matter of nuances and what you try to achieve.
The unofficial rule of thumb is that Docker is focussed on convenience and LXD is focused on security. Both deliver the same overall concept.
Originally Docker required to be run in an LXC container, because the docker engine itself has to run as root. On top of that, then you specifically need to setup docker containers to be none privileged, or they will run processes as root user. ANY vulnerability in the software or the docker engine itself, is a direct threat to your system, as any command or malicious action happens as root.
Using LXD instead, you has to be carefull how you configures LXD as it requires a few specific root privileges. This can easily be setup using sudoers, hence you can avoid to EVER run LXD in root context, and you can avoid to EVER expose your system - even if specifically making an LXC container as “privileged”.

Today the docker engine is as seceure as it can be, and the risk is significantly lower, yet still very much present. However this is the crude and stripped-from-to-many-nuances comparisation.

1 Like