My Dark Factory Software Stack

By Joel Dare - Written August 12, 2026

I’m building a dark software factory.

I’ve ordered a Mini PC to run it. While I wait for it, I thought I’d plan the software.

With just 256GB SSD I need to be careful what I put on the machine.

I’ve already got two machines with nearly max disk drives. My MacBook Pro, for work, has a 1TB drive and I filled it up yesterday and had to clear some space. My MacBook Air, for personal use, has a 500GB drive and it’s been hovering around 50GB free. That’s a little too close for comfort for me.

Linux

I’ll run Debian Linux with an XFCE desktop environment.

Today, that means Debian 13 (Trixie).

I also considered Alpine Linux. This is probably a smaller system and I use it a lot for Docker setups. But, its use of musl instead of glibc will probably cause me trouble down the road. And, I’m not sure if I’ve ever tried to run a desktop environment on Alpine.

Why a desktop at all? I suspect that my Dark Factory will need to open web pages (or apps) in a GUI, take screenshots, and inspect things “visually”. It might be able to do this headless too but I’m not convinced it’s completely accurate. Plus, I’ll probably want access to a GUI if I also use this machine regularly, even if it’s just for diagnostics and troubleshooting.

A long time ago I used to use Fluxbox, Openbox, and other variants of Blackbox. Although I liked those, I haven’t used them in a long time, don’t know their current status, and don’t want to fuss with this box a whole lot. XFCE is probably the least configuration-heavy option.

That said, I might test Alpine Linux with Openbox and Xvfb (X Server) in a Docker container and then VNC to it. That would give me a feel for how Alpine might work and how big that setup is. I probably don’t need to be this frugal in reality though, so I’m pretty sure I’ll land on Debian running XFCE.

Claude Code

I’ll start out using Claude Code as the harness. I’ve got a tiny ($20) subscription and I plan to use that.

I’m going to use foundation models here. The big guys. As opposed to running a model locally. Running locally is what I dream about. But, we’re not quite there yet and I don’t currently have the hardware for it. So, I’ll run one of the big U.S. foundation models.

An AI harness is the application you use to talk to the API. It holds instructions, skills, plugins, and more. Claude Code is the official Anthropic harness.

The harness makes calls to the models via an API. The Anthropic models are currently Opus 5, Fable 5, Sonnet 5, and Haiku 4.5.

I also have a second, equally small, subscription to OpenAI so I could use Codex. I used to use it for all my personal projects. But, I switched to Claude Code a while back. I use Claude Code at work and I don’t want the cognitive load of switching between harnesses. Still, it’s an option. I keep the subscription around because I mostly use ChatGPT for everyday questions.

Claude is great at coding, while Codex is a little better with sales language and general everyday questions. Codex is also great at coding, so it’s a good all-around choice.

Finally, I have an even smaller subscription for GitHub Copilot. This is half the cost of the others and nearly as capable. I think it would be as capable with a little tuning. This is a nice cheap option. But, right now, I’m not sure if I’ll keep this subscription. I rarely actually use it.

One reason I might switch to Codex or Copilot is that I tend to use Claude Code as my daily driver for real work. One thing I don’t want to do is have my Dark Factory burn up all my tokens. If that starts to be a concern I’ll probably switch to one of the other providers so that I can continue to use Claude Code for daily use. Or, maybe, I’ll give my Dark Factory its own subscription. Especially if it can make any money with its creations.

Browser

I mentioned that I need a web browser.

I’ll start with Chromium and switch to Chrome if I find I need it.

Chrome is the browser that 90% of the world uses today, the commercial version from Google. Like it or not, it’s the one that the majority of my users will be using. Chromium is the open source project behind it and is stripped of some of the Google-ness. Chromium is the one Debian ships by default. It’s pretty close to Chrome but it’s not exactly the same.

VNC Server

I’ll install a VNC Server on this system so that I can connect to it and use it from my MacBook. For Debian I think that means TigerVNC. I believe it’s the primary, actively maintained VNC implementation.

The machine won’t be completely headless. I’ll probably put it on the back of my TV and connect it via HDMI. That will let me administer it easily with a keyboard and mouse whenever anything is broken and I can’t get to it via VNC.

There are a few great things about putting it behind my TV.

First, one of my mesh routers sits behind my TV, is hard wired, and has an extra port. That means this machine can be connected via network cable. Wifi is sometimes difficult on Linux, especially for newer hardware. I don’t know if I’ll have any problems with this but having it hard wired bypasses it altogether. And, of course, wired is much faster.

Second, it gives me a screen while I do initial setup or anytime I have problems.

Third, I can use it “in the open” at my house. I have two young grandsons and I’d like them to see me work, at times, to spark their creativity and curiosity.

Unless it’s loud. In that case, I might move it to my office once it’s stable.

Things I’ll Avoid

There are a few things I think I’ll specifically avoid. Primarily because they take up valuable disk space.

I don’t want to run any VMs on this machine. No VirtualBox or UTM.

The jury is still out on Docker or Podman. These are used a lot for dev environments, especially to keep them consistent and reproducible, and I might find a need for them, but I’ll avoid them at first.

The Dark Factory Series

  1. Creating a Minimal Dark Factory
  2. My Dark Factory Software Stack
Leave a Comment
(formrobin.com)

JoelDare.com © Dare Companies Dotcom LLC

Terms - Privacy