Since we're talking about email, contacts, calendars and files, thought it might be useful to summarize what I tried and landed on. Note that I'm only using it for my own personal setup, not shared with a company:
- SyncThing - current solution for some of the filesync I'm doing (mainly personal projects). I have a small server at home that works well as an "always on" client that I can access.
- OwnCloud - used to use it for files, cal and contacts. It's much lighter than NextCloud, pretty easy to setup. I've had corruption issues with the files, which arguably might have been my configuration - and made me leave it behind
- Radicale + infCloud - Used it for a while for contacts and calendar. It's working well, and the API being carddav+caldav, you can use anything you want to sync. The main issue I had was that you can't sent and invite, which is a hassle.
- NextCloud - current solution for calendar and contacts. I'm using it mainly because my shared hosting is providing an instance with my contract, and they handle backups. I don't like the UI much, it's slow and a bit clunky, I mainly use it when I want to invite someone. I don't use files. I tried using their mail solution but never made it work. I'm using Davx5 to sync on my phone, and the carddav/caldav sync on mac. I may be moving at some point.
- Rainloop - very good alternative to roundcube. My only grief with it is that I never figured how to search across folders.
- Roundcube - pretty good, and lots of plugins you can use to make it do what you want.
- Also used a simple SSH + SCP client to do file sync'ing. I'm just hesitant with that, since someone getting access would mean full access to the server.