87 lines
4.2 KiB
Markdown
87 lines
4.2 KiB
Markdown
+++
|
|
title = "Moving away from Nextcloud"
|
|
date = 2024-08-05T01:33:59-05:00
|
|
draft = true
|
|
+++
|
|
|
|
## Nextcloud
|
|
|
|
While Nextcloud had a lot of features and provides a nice web interface,
|
|
(I got a lot of use out of Nextcloud's caldav server)
|
|
I kept running into problems and limitations with it.
|
|
One thing is maintenance. Of my entire homelab,
|
|
I easily spent the most time troubleshooting and fixing Nextcloud,
|
|
sometimes having to reboot the VM multiple times per week.
|
|
Additionally, I've ran into a few annoying limitations,
|
|
such as the sever crashing if you view a folder with too many files in the web interface or apps.
|
|
Nextcloud does a lot of things, and does things very well,
|
|
but I would not describe it as a rock solid piece of software.
|
|
|
|
Due to this, during our [move to germany](../moving-to-germany) and the resuling reorganization of the homelab,
|
|
I decided to *finally* ditch Nextcloud, after talking about it for months.
|
|
|
|
## Syncthing
|
|
|
|
[Syncthing](https://syncthing.net/) is one of the best file syncing tools in existence,
|
|
and I don't say that lightly.
|
|
Syncthing is a distributed, peer to peer file syncing service.
|
|
This means that it doesn't rely on a central, always online server ran by you or someone else,
|
|
but that your devices directly send files between themselves whenever they are online at the same time.
|
|
I used Syncthing to replace Nextclouds file syncing.
|
|
|
|
### Syncthing vs Nextcloud
|
|
|
|
Unlike Nextcloud, Syncthing has no web file manager,
|
|
does not do caldav or any of the other million things you can do with Nextcloud apps,
|
|
and requires setup on both ends to setup a syncing connection.
|
|
In short, Syncthing does only one thing.
|
|
But boy does it do that thing well.
|
|
During the time I've used Syncthing,
|
|
I've never seen it crash, hang, or corrupt a file.
|
|
Even with a device like my phone,
|
|
constantly loosing and regaining network access,
|
|
files have synced perfectly, every time.
|
|
|
|
### Distributed?
|
|
|
|
With Dropbox or Google drive, files are not sent directly between your devices,
|
|
but are sent from one device to the server,
|
|
then from the server to other devices.
|
|
This also applies to Nextcloud,
|
|
the only difference being who runs and controls the server.
|
|
With Syncthing, there is no central, authoritative server storing the 'master copy' of your files that other devices download from.
|
|
Instead, devices all connect to each other, sending changes made on one device to all other devices they share that file with.
|
|
This makes all of your devices into a cluster, where no device has to always be online,
|
|
but any devices that happen to be online at the same time synchronize while they can.
|
|
|
|
### Introducers
|
|
|
|
If you have a lot of devices, making sure every device is connected to every other device can become a hassle.
|
|
Thankfully, Syncthing has the concept of 'introducer' devices.
|
|
In short, With an introducer, you only need to connect your devices to the introducer,
|
|
and the introducer will make connections between any devices that share the same folder with the introducer.
|
|
This is very useful, for example, to enable for a always online storage server,
|
|
and it is the architecture that I used to fully replace nextcloud.
|
|
|
|
## File Manager
|
|
|
|
While Syncthing is great for file syncing between devices,
|
|
we also wanted to be able to acess a web interface to upload, download, and view files on devices not in our Syncthing network.
|
|
|
|
TODO
|
|
|
|
## Radicale
|
|
|
|
The final function my family and I used nextcloud for was calander and todo list syncing.
|
|
This was done over Nextclouds CalDav server,
|
|
using DavX^5 as a mobile client, and Thunderbirds Lightning plugin as a desktop client.
|
|
This was almost a more important function than filesyncing, as my wife and I use it to organize our calanders,
|
|
Keep shopping lists, chore lists, lists of movies to watch, lists of long term projects, etc.
|
|
(we *really* used the hell out of todo lists.)
|
|
|
|
For this, we used [Radicale](https://radicale.org/v3.html). Radicale *only* does CalDav and CardDav syncing, nothing else,
|
|
but between Syncthing and FileManager, thats all we needed it to do to complete the nextcloud replacement.
|
|
Installation was incredibly simple, thanks to the existence of a prebuilt NixOs module for it.
|
|
After about an hour of research and work, I had a Radicale server up and running on my Hetzner node,
|
|
and had exported all of our calanders from Nextcloud and imported them into Radicale.
|