Over the last couple of months, I’ve tried repurposing several devices as home lab nodes, ranging from an LXC-heavy Proxmox workstation built from an old laptop to an accursed, barely-functional SBC-powered Hackintosh. But aside from full-fledged systems, I’ve also got a couple of spare components recycled from old devices that mesh really well with my servers. This includes my graphics cards, which provide extra computational power to the containers and virtual machines residing in my home lab.
Transcoding in Jellyfin
Even a weak GPU works well
With its FOSS nature and clutter-free UI, Jellyfin is a solid media server for folks looking to organize and stream their TV shows and movies. However, the fact that it supports GPU transcoding without forcing me to pay a dime is what makes it an essential part of my self-hosted media management stack. That’s because I’ve got a massive collection of ripped DVDs, Blu-rays, and (even) CDs split across a multitude of file formats and resolutions.
Since my outdated server processor isn’t great at transcoding high-resolution videos, I’ve connected the Jellyfin container with my old GTX 1080. It’s nowhere near the most powerful card in this day and age, but the ol’ reliable GPU can simultaneously transcode two streams, and that’s more than enough for my media-consumption requirements.
Image upscaling
And GPU-powered smart search in Immich
After I got my hands on a proper NAS, the first thing I did was recover all the images, snapshots, and videos I’ve captured over the years and tuck them safely into my storage server. Unfortunately, my childhood images have extremely low resolution in the 640x480 to 1280x720 range. But with the power of image upscaling models, I’ve been able to reliably increase the resolution of my photo collection with minimal impact on the image quality. The best part? Since ComfyUI and OpenModelDB models are easy to set up on Windows, I can run this project with the RTX 3080 Ti inside my daily driver.
While we’re on the subject of old photos, I also wanted to mention Immich, a self-hosted tool that helps me manage my image library. To be more specific, Immich lets me offload Smart Search and Facial Recognition workloads onto an extra GPU. Before I started using Proxmox, I’d paired my GTX 1080 with a Debian-based Immich container, though it’s high time I connected the GPU to the Immich LXC.
LLM in Home Assistant
An AI home assistant, running inside Home Assistant
From its massive automation provisions to its handy collection of add-ons, Home Assistant is armed with a ton of tools to help manage your collection of smart home devices. As if that’s not enough, you’ll find a ton of integrations that further amplify its utility – including one that can help you build an LLM-powered assistant!
Ollama is a popular framework for running Large Language Models (LLMs) on local machines, and it’s also available as an integration on Home Assistant. If you’ve already got an Ollama-powered LLM server up and running, you can pair it with HASS using the Ollama integration and use a locally-hosted AI model to control your smart home.
Motion detection in Frigate
My GPU keeps an eye on my surveillance cameras
The Network Video Recording ecosystem is teeming with different tools, though Frigate’s simple UI, lightweight nature, and superb auto-tracking and motion detection features make it my favorite self-hosted tool for managing my security footage. Better yet, Frigate can even leverage old GPUs and AI accelerators for video decoding and object detection.
Since I run Frigate as a privileged LXC on my PVE workstation, the aged Xeon cores can’t handle these workloads – which is where my Intel Arc A750 comes into play. Although I had to modify a couple of config files to get my Frigate LXC to detect the GPU, this project was worth setting up, as it not only prevented the A750 from gathering dust, but also helped my CPUs get some breathing room.
Remote gaming with a virtual machine
A little difficult, but still doable
Due to their sky-high resource consumption, virtual machines aren’t known for their snappy nature. What’s more, GUI-heavy VMs can feel rather sluggish if you leave them on their default settings. So, you can imagine my surprise when a thought experiment on converting a VM into a daily driver turned out to be a feasible undertaking. Heck, I was even able to game on the virtual machine without everything turning into a stutter-fest.
And at the center of it all was my Arc A750 card, in all its budget-friendly glory. Thanks to GPU passthrough, Parsec, and plenty of CPU + memory resources, it’s possible to build a remote VM capable of running even the most modern games at respectable frame rates.
Some more ways to use a GPU in your home lab
Still hunting for more ways to leverage your old gaming companion in your computing experiments and self-hosting tasks? Well, I’ve got a few more suggestions. If you’ve got a locally hosted LLM server, you can combine it with Hoarder. That way, the self-hosted bookmark manager can use the model’s processing power for AI-based tagging. Speaking of AI workstations, you can even put together an image-generation server using Fooocus.
The best part? Leaving aside my gaming-oriented VM experiment, most of these projects use LXCs and other types of containers, meaning multiple services can share the same GPU. That way, you won’t have to go out and buy multiple GPUs just to pair them with your arsenal of self-hosted apps.
