Self-Hosting #1 - Nextcloud

If I was only allowed to self-host one single tool it would be Nextcloud.
When I started buying servers and got into the self-hosting game when I was still in school, I thing Nextcloud (or it could have been Owncloud back then) was the first service that I set up. Most of the time I basically used it as a replacement for Dropbox and ignored all other features like the Calendar. It took until a few months ago for me to learn that those features are also truely awesome. Nextcloud (with some plugins) can replace many hosted services and is relatively easy to manage.

File Management and Sharing

Even it's only one of the features that Nextcloud offers, it's best known for its file management and sharing capabilities. It has an easy to use web interface as well as native apps for all common platforms so Nextcloud can be used to sync important files between all devices without giving them to a third party. I have some of my most important documents stored in my Nextcloud to have them with me wherever I go, for example my passport and Covid certificates. That has been a lifesaver for me many times!
I also use it to share data (mostly pictures) with friends and family.

Calendar

Until some months ago, I used radicale as my calendar server. Then I realized that Nextcloud has an awesome inbuilt calendar. It has been very reliable for me so far. The visualization is great (almost as good as the macOS calendar app) and it supports the calDAV protocol to sync with almost any device.

Tasks

Another feature that replaces radicale for me. There is not much to say about tasks. It's just a collection of simple TODO-lists and it works. I recommend this App on Android.

Note Taking

There are countless open source self-hosted note taking apps. I wouldn't say that Nextcloud is the best one (especially organizing notes is a bit limited) but it syncs with my phone and supports markdown. Enough arguments for me using it.

Contacts

Nextcloud can be used to sync and backup the phone's address book. Again a feature which I previously had another tool installed for. The address book is surprisingly easy to use and has many useful features.

The bad Things

While I really like Nextcloud, there are some aspects that I really dislike:

  • Performance: Unless Nextcloud is installed on a very capable server, the performance isn't great. A Raspberry Pi, for example, is by far not powerful enough to power a well performing instance. I really recommend at least two x86 cores and 4GB of RAM.
  • Cron jobs: Nextcloud doesn't run recurring tasks on its own. Instead it relies on either a webcron service or the system crontab. Both is annoying to set up and feels out of time. When using a dockerized deployment, I recommend adding this to your docker-compose file.
  • Error messages: Nextcloud is really bad with error messages. Really. I had countless experiences where I clicked on a button and Nextcloud did nothing, without telling me why. For example: When you create a new user in the admin panel and the password doest not satisfy Nextcloud's requirements, it just does not create the user without an error.
  • Uploading files via the web-browser: Uploading (large) files via the web-browser is a bad experience. The upload often just cancels, the progress bar jumps around like crazy, the time estimation is almost always wrong and the UI freezes from time to time. Not great for a tool that was made for sharing files.

Despite these flaws, I'm a happy daily user of Nextcloud. I especially like that it replaces many not privacy-respecting tools (like Google Driver, Google Calendar, Google Contacts, Dropbox...) at once.