Nextcloud Part 2 - FPM
Now that the Nextcloud MariaDB is up and running, I can deploy a new workload for the Nextcloud FPM container into the Nextcloud namespace. There are a few pre-requisites to take care of first.
Redis # Redis is an in-memory key value store. Nextcloud uses it to prevent file locking problems. It doesn’t require persistent storage or any special configuration. If I wanted to customize the Redis configuration, I would do that with a Config Map mounted at /etc/redis/redis.
Virtual Gaming
I mentioned in an earlier post that one of my side goals for this project was to set up a (Windows) VM which would allow me to utilize Nvidia Gamestream and Moonlight (or an Nvidia Shield) to play games which run on Window exclusively. I did this previously using a Windows 10 VM on Proxmox with GPU passthrough, but I couldn’t get the video drivers to intialize the card. It got an error 43 in device manager.
Freedom!
Things have gotten a little busy on the work front so I haven’t gotten back to working on Nextcloud, but I came across a post about the FreedomBox so I went off on a small tangent. The aim of FreedomBox is designed to be an easy-to-setup-server for self-hosting applications which is privacy-centric. It can run on a single-board computer, in a VM, or on any hardware supported by Debian. You can even buy a small device pre-configured to run Freedom Box (Note: I’m not affiliated in any way with FreedomBox).
Nextcloud Part 1 - Database
Nextcloud is the first “production” service to be deployed. Everything else has been building the foundation for Nextcloud and the services which follow it - Mailcow, OpenPGP, Keybase.io, server hardware, Proxmox, NFS and iSCSi storage, Rancher OS, Kubernetes LDAP, and Keycloak SSO.
Nextcloud will utilize all of the patterns that I’ve learned so far with a new wrinkle - it will utilize FPM-PHP to make it perform effciently under load. PHP-FPM is an interface between the web server and external processes such as PHP which eliminates the overhead of creating a separate process for each request.
Single Sign-On Part 3 - oauth2-proxy
In my last post, I stated that I would be moving on to deploying the first “real” application which will bring all of this together. In fact, I decided that Nextcloud would be that first deployment. However, while reading the installation documentation and looking at how it would integrate with an external authentication provider, I decided that I needed to learn how authentication works on the web works a little better.