Workstation Setup, LLM Exploration, and Future Improvements
Today was focused on setting up my workstation, exploring large language models (LLMs), and planning future improvements.
Workstation Cleaning and Hardware Installation
I began by thoroughly cleaning my workstation, dismantling everything to remove dust with a vacuum, brush, and damp cloth. I installed four Noctua NF-A12 industrial fans (two in the front, two in the back), which are affordable and offer decent performance. I connected a new 1000W power supply and cleaned the CPU block as much as possible. While some dust reappeared on the graphics card after startup, the CPU temperature is holding well.
I also installed the new RX 7900 XTX graphics card. It's a large card, fitting just barely. The fans point downwards, almost touching the power supply, which might restrict airflow. For my use case of intensive bursts (like LLM tasks), it seems to manage temperatures adequately, though it heats up quickly.
Software Setup and LLM Exploration
I installed a new Debian OS without disk encryption to enable Wake-on-LAN. I then set up two Docker images: Open Web UI, an interface for LLM systems, and Ollama, with AMD graphics card support. Ollama works very fast with the RX 7900 XTX. I've been successfully running models like Deepseek-r1:8b and gpt-oss:20b, finding them quite performant.
I attempted to integrate Ollama with my Neovim Avante plugin, but it didn't work well. Avante's prompts seem to confuse these local models, though it functions perfectly with official GPT and Gemini models. This is a minor issue for now, as I have other priorities.
For general querying, replacing my previous Kagi usage, this local setup works fantastically. I need to configure Open Web UI to be more agentic, allowing it to integrate search tools properly. Currently, it constructs and executes searches, then summarizes results, which isn't ideal. I prefer a system that performs searches only when it deems necessary, potentially conducting multiple searches for better information gathering.
I'm also considering the Open Web UI project's commercial aspects and custom models. I'm not entirely convinced by its approach, and I might need something more akin to Avante, though I don't have time to develop my own solution.
Power Management and Future Improvements
I've implemented a script that turns off the workstation after 30 minutes of inactivity, specifically monitoring traffic on SSH (port 22) and Ollama (port 11434). I've also added a Wake-on-LAN button on my Home Assistant for easy remote power-on.
Future improvements include:
- Fan Control: Only one of my four new fans is currently connected. I need a control board to connect all fans to the motherboard, allowing them to be controlled based on temperature sensors. This should improve internal airflow.
- GPU Airflow: I might add a support peg to slightly lift the graphics card, creating more space for airflow underneath and aiding heat dissipation.
- Dust Filtration: I received a PVC mesh that I plan to add for dust capture, particularly on the top grid, to prevent dust ingress. Proper fan configuration should also help maintain positive airflow and reduce dust.
- CPU Cooling Block: While the current CPU cooling is adequate, I might consider changing the dissipation block in the future if performance degrades.
Finally, I'm reconsidering posting all these personal journal entries publicly. I think it might be better to store them locally or on my NAS, perhaps using a Zettelkasten-like system. I can always collect these entries later for blog posts, but daily publishing might not be necessary for personal reflections.