I haven’t tried Baikal but it seems to have (from the screenshots) just a bit more features. Radicale is merely the calendar+contacts+tasks server. You can login through the web UI to create calendars and delete them. They are then managed by a calendar/contact/task app like thunderbird. Baikal seems to have settings and a dashboard in the web UI which Radicale lacks.
Both seem to have an unofficial docker container if you’re into that.
There is no difference between installing software on a VM and on “bare metal”. The OS takes care of the hardware stuff.
I installed it according to their manual on their website (https://radicale.org/v3.html) which is imo pretty easy. The TLDR is that you first install python3 and its package manager pipx, then you install radicale using pipx and finally you run it as a systemd service. You can just copy their service template. The issue comes when you need to run multiple web services though. Radicale wants to be on the website root (website.com/ instead of website.com/some/path/blablabla/ ) which is not as trivial to set up as the previous steps. They have a template for nginx and apache but you need to kinda know the very basics of one of these to set it up.
Also on debian there is a package so you could technically just apt install radicale and then systemctl enable radicale if you want to avoid creating a service and installing python.
Obviously you need to create a basic config either way according to their manual. At least for password authentification.
Thanks for your reply. Unfortunately I don’t think the Orange Pi 5 Plus is mainline Linux ready, or at least the RK3588 is not there yet so it seems to me that it’s more of a hacky board. I don’t think the Zimaboard is open source but it seems pretty good although I personally would buy a coreboot compatible small form factor PC if I went x86.
It’s probably a skill issue but don’t really know how to setup desktop streaming. I’ve tried
[[apps]]
title = "Desktop"
[apps.video]
source = "pipewiresrc capture-screen-cursor=true capture-screen=true"
But it just shows black screen.