Future of Nextcloud in Turris OS

Looks like Nextcloud is silently dropping support for 32bit OS, see [Bug]: TypeError: Return value of OCA\DAV\Connector\Sabre\FilesPlugin::OCA\DAV\Connector\Sabre\{closure}() must be of the type int or null, float returned · Issue #34674 · nextcloud/server · GitHub for instance or System requirements — Nextcloud latest Administration Manual latest documentation which says:

A 64bit CPU and 64bit OS is required for Nextcloud to run well.

At this moment NC still works on 32bit systems but I’d say sooner or later the support will be removed. I did a quick check but failed to find a viable alternative. Any ideas?

1 Like

Turris Omnia and MOX both run 64-bit Marvell Armada CPUs.

Yes for MOX, but Turris Omnia is 32-bit only.


You are right. Here’s the specsheet for the Mavell Armada 38x family which the Omnia uses.

Interesting find @jose1711 , thanks for sharing!

One alternative: lighttpd mod_webdav is a fully functional WebDAV server for files and is much faster than NextCloud or OwnCloud (which use SabreDAV under the covers). However, lighttpd mod_webdav has no support for CalDAV.

(I tried to contribute X-Sendfile support to NextCloud and OwnCloud, but they both were unable to review my patches.)

lighttpd mod_webdav runs fine as a 32-bit application since lighttpd is built with large-file support, meaning that whether the lighttpd executable is 32-bit or 64-bit, lighttpd accesses the filesystem using large-file support and can handle 64-bit file sizes.


One alternative: lighttpd mod_webdav is a fully functional WebDAV server for files and is much faster than NextCloud or OwnCloud (which use SabreDAV under the covers). However, lighttpd mod_webdav has no support for CalDAV.

Thank you, that looks promising (and I am not using calendar synchronisation). Apart from keeping my files in sync I also use Nextcloud clinet to send photos from my Android phone to NAS - is there a workflow/app you could recommend to do provide the same feature with mod_webdav?

@jose1711 sorry, I can’t make any recommendation for workflows. There are lots of tools to sync files. I like rsync.

As far as I can see it Nextcloud on Turris is still on 22 while this version was annoncend to be no longer supported with the relause of Nextcloud 25. So to my mind it’s also bad that Nextcloud on Turris is so much delayed with updates to the actual version.

It is now official: Deprecation of 32-bit support ends completely with Nextcloud 26

1 Like

LOL at a PHP app requiring 64bit support.

My alternative suggestion: for files synchrinization use syncthing. For contacts and calendar use radiacale. The files viewing in browser you can use lighttpd itself but you have to add some sort of login gateway (turris-auth can serve this for a single user but for multiple accounts you have to find something different).

There is a mobile app for Syncthing and I use DAVx for caldav and carddav.

It takes more work to setup but Syncthing and radicale were always much faster than nextcloud alternative.


Syncthing looks pretty great. Thanks for sharing!

And did you run the services through LXC or through the openwrt repo? I’m happy with the backup of files and contacts (admittedly I’ve also set up a backup of bookmarks), for which nextcloud is useless/slow.

I run them directly in the Turris OS. Syncthing is in the Turris OS repositories, and it seems that Radicale is also there. In the past, both were not, but Synthing provides static builds for both armv7 and aarch64, and Radicale is simple Python. There is no need for LXC.


Did you follow any instructions? The installation of both packages is without problems. Radicale also has a luci interface. Syncthing already has one, but I couldn’t find it in the repo:

I tried so far to set up Radicale in the luci interface, following the CLI instructions I set up the server and user, ran init, but that’s not enough I see. I have set up Syncthing in Windows and Android so far

No instructions. The Syncthing has its own interface. You have to pretty much only enable syncthing service. The rest was intuitive to me.

For the Radicale I followed the generic tutorial on their website.

I’ve had some time to devote to this, so insights for those who would also like to start the service.
For synthing I followed the procedure for openwrt:

I didn’t address WAN access, I don’t need it. initd can be run via luci. I ran the command in ssh and the service is running:

[TT674] 10:25:24 INFO: Using the discovery mechanism: global discovery server https://discovery.syncthing.net/v2/?noannounce&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[TT674] 10:25:24 INFO: Using discovery mechanism: global discovery server https://discovery-v4.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[TT674] 10:25:24 INFO: Using the discovery mechanism: global discovery server https://discovery-v6.syncthing.net/v2/?nolookup&id=LYXKCHX-VI3NYZR-ALCJBHF-WMZYSPK-QG6QJA3-MPFYMSO-U56GTUK-NA2MIAW
[TT674] 10:25:24 INFO: Using discovery mechanism: IPv4 local broadcast discovery on port 21027
[TT674] 10:25:24 INFO: Discovery mechanism in use: IPv6 local multicast discovery on [ff12::8384]:21027
[TT674] 10:25:24 INFO: Ready to synchronize "Default Folder" (sendreceive)
[TT674] 10:25:24 INFO: TCP listener ([::]:22000) starting.
[TT674] 10:25:24 INFO: Relay listener starts (dynamic+https://relays.syncthing.net/endpoint)
[TT674] 10:25:24 INFO: QUIC listener ([::]:22000) started
[TT674] 10:25:24 INFO: Loading HTTPS certificate: open /root/.config/syncthing/https-cert.pem: no such file or directory.
[TT674] 10:25:24 INFO: Creating a new HTTPS certificate
[TT674] 10:25:24 INFO: Completed initial scan of sendreceive's "Default Folder".
[TT674] 10:25:24 INFO: GUI and API listening on
[TT674] 10:25:24 INFO: Access the GUI via the following URL:
[TT674] 10:25:24 INFO: My name is "turris".
[TT674] 10:25:24 AM WARNING: Syncthing should not be run as a privileged or system user. Please consider using a regular user account.
[TT674] 10:25:33 INFO: quic:// NAT type detected: symmetric UDP firewall.
[TT674] 10:25:33 INFO: quic:// resolved external address quic:// (via stun.syncthing.net:3478)

Accessing via localhost on the PC refers me to the service running on the PC > it´s ok.
Access to doesn´t work.

I had to change the address in init.d and the syncthing configuration file (and there change option enabled from ‘0’ to ‘1’. Stop/Start service and it already seems to be listening on the router address.


I’ve been unsuccessful with Radical so far. I have installed the packages for radicale2 via luci, including the luci interface and language pack. Following the instructions I have set up the basics via luci interface with output:

config section 'server'
	option ssl '0'
	list host ''

config section 'storage'
	option filesystem_folder '/srv/radicale2/data'

config user
	option name 'XXX'
	option password 'XXX'

config section 'web'

I couldn’t get radicale2 to work (I tried installing the older v1 and the same thing). At I get the response “Radicale works!”. I create an authentication and user, set the directory path to srv. I create an account in DAVx with the user created, but get a 500 error when creating a new directory. I have seen the same behavior with Floccus. Interestingly, when I run it in ssh, I get this message:

root@turris:~# radicale2
[b6ffa560] ERROR: An exception occurred during server startup: Failed to start server '': [Errno 98] Address in use

Any idea what causes this?

I’d use netstat -lp to find out which service is running on that port.

So I understand that synthing works for you in the end without issue. I forgot that you have to not onky activate service but also enable it in the config, but you managed.

The radicale error seems like it is already running. Make sure that you stop the service first.

You are going in the right direction. The radicale log should give you some hint about what is happening. It is also possible that radicale log is redirected to syslog and thus to /var/log/messages.