Maybe check out Tailscale. It's mainly a mesh VPN for your own devices, but they have a lot of options included so you can share stuff with other people.
exu
Or Wayland, where this isn't an issue.
You can install Wireguard or another VPN to encrypt your traffic to the VPS.
Apparently this wasn't always that obvious.
https://en.m.wikipedia.org/wiki/Apple_Corps_v_Apple_Computer
Set 'blendos-base' in your system.yaml, install additional packages, update and reboot.
I already learnt of blendOS two weeks ago, I think in a discussion of immutable distros.
Really looking forward to play around with it some more and maybe replace my Arch install with this.
Big ass enter is way better than the small one.
You can't change my mind.
You could just run everything as root or configure sudo without timeout.
You'll want to install a reverse proxy of your choice on the VPS. Have clients access it over ipv4 and configure it to proxy pass it to your ipv6 address. Nginx at least is capable of doing ipv4 & ipv6 -> ipv4, I think the inverse should also be possible.
You can use OpenCL instead of ROCm for GPU offloading. In my tests with llama.cpp that improved performance massively.
Definitely do benchmarks for how many layers you can offload to the GPU. You'll see when it's too many, as performance will crater.
By launching llama.cpp as a server you'll actually be able to continue to use openwebui as you currently have.
Firewalld had, at least last time I checked, way more capabilities than UFW. Both are fine at being basic firewalls, but I don't think you can build a router using just UFW.
Firewalld allows some pretty advanced rules. I use it to redirect a bunch of web requests going to a certain address over a local ssh tunnel.
In my experience setting environment variables is pretty inconsistent. The easiest way would be using /etc/environment. This sets stuff globally for all users and definitely works.
PAM also used to support a per-user environment file, but that's deprecated or removed even. The best you can do for per-user config is setting variables both in your login shell and the systemd user environments file.