NextCloud on BananaPi BPI-R3?

Hi, planning to setup NextCloud on BPI-R3 to host files on an external USB SSD for Private (Myself) use only. May I know if this router is capable to handle it swiftly or without huge performance hit? If anyone has tried NextCloud on your router please feedback your router's brand/model for reference to comparison.

Currently enabled features on BPI-R3 (about 200MB/2GB Ram usage):

  • Adblock
  • Network Share via Samba4
  • Transmission (occasional Download with 1.2 seed ratio)
  • Wireless AP
  • DHCP server, with Mac whitelist
  • Firewall with time schedule

Hosted files will be some notes or documents, no huge sized files.

Thank you.

Should be performant.

1 Like

Thank you, more comments are welcome.

Last I did Nextcloud on OpenWrt was on a Turris Omnia. Performed well. The pi r3 is significantly faster.

Thank you for the input, at least I have an idea on how it will perform by refer to Turris Omnia's hardware.


@jamestien have You had any progress with installing nextcloud on this device? Struggling to get everything up and running on thr bpi-r3 the last days... have been successfully setting up nginx, mysql, php and nextcloud on normal Ubuntu/ Debian installations in the past, but over here things seem to be quite different. Would be really interesting to hear from other people experiences :slight_smile:


sorry, no luck either friend. got bunch of errors while attempt to install required packages dependency. I've changed my mind and don't want to dig deeper. As this is my main home router & I already sold my back up router, I didn't want to break everything that worked so far and interrupt the network.

Aw man, sry to hear that.

Well, i've reached a stage where it basically would run, but somehow cannot connect to the local mysql server, with running occ always leaving me with a

Doctrine\DBAL\Exception: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2002] No such file or directory in /"nextcloud_location"/lib/private/DB/Connection.php:142

Tried different db users, privileges and even reinstalled mysql as well as different php versions, to no avail.

Speaking about php: The latest nextcloud from git (ver 25 i think) doesn't work with php 8.2, which is is a bit unfortunate as the latest OpenWrt snapshot ships with 8.2. Have tried it with installing older version 8.0.25 and 7.4 from oldstable release, but i suspect some trouble around here. Have not yet figured out how to enable a detailled log for the usual suspects on OpenWrt (lighttpd, mysql, php and nextcloud).

Would have been glad to try a stable release, but unfortunately the BPI-R3 is not in stable, yet :confused: Couldn't get along with the old 21.02 Snapshot image from Sinovoip, while it basically would run i had some trouble with it (not saving any changes after reboot, etc.).

Right now i am shortly before giving up on it and putting it into hiatus for half a year. While i still see the great capabilities of this device, i have to admit that software-wise it is not there, yet.


Yeah man, the hardware is fairly new and software is not yet ready. Let's give it sometime and wish more users would come & share the knowledge.

ping @Pepe

I'd look into how TurrisOS does it.

Well, slap me... never realized how far Docker has come along :slight_smile: Currently running nginx, mysql + nextcloud 25 with f.e this image ... and it runs like a breeze, with very little setup.

Maybe one has to re-think a thing or two, i used run everything natively on my Linux boxes, which is maybe still the way to go on a full flavored OS. But as OpenWrt is what it is - an excellent slim and sleek Linux distro tailored for running network tasks on a limited device like a router plus a few things - a virtualisation layer like Docker really comes to shine. Totally new to this, but this looks quite promising :slight_smile:

No particular experience with Banana-Pi s
but I successfully ran both NextCloud and OwnCloud
taking turns via docker
on my NanoPi neo3 (2GB RAM, rk3328 1.3Ghz cpu) with openwrt v22.
In terms of the software stack and subdependancies, you can figure that out it you insist/prefer running on bare metal, but docker is 'application virtualization' - let 1000 other people figure it out for you, and just wait at the Finish Line to scoop up the result. That is where docker shines.

In terms of system load, NextCloud / OwnCloud are both heavy hitters. Both are basically PHP ontop of mySQL, with more or less amounts of Go + javascript working as middleware glue. But you should try them both, each has a different focus/license/support/philosophy. I would use EITHER before I would pay for Microsoft Office 365, which I hate with a passion and I am forced to use against my will.

When you add portainer + firefox to the NextCloud/OwnCloud mix, your node will chug / be slow. You can wring some more performance out of the hardware by figuring out which parts DONT need to run encrypted over https/ssl/ssh, because you only got 1-2 users behind a private lan anyways.

I'm gonna guess and say if you have "4" concurrent users - you're gonna need a bigger gun. You'll be looking at an x86_64 platform instead of armv7l/armv8/aarch64 platform. But, if you are a docker fan/practitioner, it's just a 'docker pull' or podman cmd away from "oh look, that was easy".

Well, so far the above mentioned container seems to work quite well. It feels a bit laggy sometimes but i account that to lower transfer rates as i still am on a testing installation, OpenWrt is on a sdcard and docker containers on a seperate USB key. I I guess this will improve a bit once the OS goes onto emmc and containers + nextcloud data gets stored on a M.2 SSD. Monitoring the performance so far it hardly takes 15% of memory usage and the CPU is slightly above idling. Will see how this works out :slight_smile:

1 Like

Not sure if anyone has tried this here, but lighttpd mod_webdav (which I wrote in C) is very high performance and uses very little resources compared to anything PHP. lighttpd mod_webdav ( is a full Class 1, 2, 3 WebDAV file server. If your client supports partial-PUT, lighttpd can take advantage of extent-based filesystems (such as ext4) to do high performance copy (copy_file_range() or ioctl(FICLONE), modify, and atomically rename into place. lighttpd uses sendfile(), where available, to serve files.

I tried contributing patches to NextCloud and OwnCloud some years ago to use X-Sendfile to allow lighttpd to serve files directly to clients, but I could not reach anyone with expertise lower-level than PHP.