I'd like to prototype a VDI solution in a home lab - mainly for fun & learning, but also to see whether there would be any practical use for it. For example, I quite like the idea of having a network-booting VDI solution that'll let me use basically any client hardware and still have access to the same applications & files. I can have a thin client (possibly even R-Pi) as a workshop PC instead of needing a full fat desktop. It'd also be handy for remote access purposes: my actual PCs can stay offline and save power, but I can still access a remote desktop via VPN from anywhere. Obviously I don't want to fork out £3k for VMware Horizons or whatever the equivalent Citrix solution costs. I'm looking for FOSS implementations to try out the concept. Does anyone have any links or recommendations? I've never set up anything like this, so I'd also be grateful for further learning/reading resources - although I imagine that's going to depend on what solutions are out there.
It could be as simple as having a powerful Windows or Linux box somewhere else which you use VNC to connect to from a raspberry pi?
Possibly, that could work. I've also been reading the LTSP Wiki, which might also be a solution: http://wiki.ltsp.org/wiki/LTSPedia
What applications etc do you need access to? Remember that VDI is not the same as RDS/Terminal Server
Sorry, totally meant to reply sooner... Yep. Dismissed it for the same reason as VMware & Citrix: licensing cost . Probably not much... Chrome, a decent text editor (think notepad++ or similar), bash shell, VS Code, maybe python runtimes, LibreOffice possibly.... All pretty standard fare for your average Linux distro. Indeed not. Ideally I would prefer to experiment with some sort of VDI solution; RDS/VNC is a pretty easy solution, but it's not really what I'm looking for.
Okay haven't used it but - http://www.foss-group.ch/en/solution/foss-cloud However: the upside of a terminal services-like solution is that it's only one logical machine to patch - whereas in VDI it's one logical machine per user to patch. That's why I suggested you look at something that provies linux-based terminal services. You could have two with an identical setup, two A records with high TTL, and a CNAME record with low TTL, in DNS, with the CNAME usually pointing to the primary server. Give the CNAME out to the clients. When you need to perform maintenance firstly you can install the patches on the secondary node, and test using the A record. Then when you're happy it's production ready, you swap the CNAME, wait for the TTL to expire and your clients on next connection will log on to the secondary server. Then, patch the primary server.