Homelab AI

A self-hosted environment for local AI models, agents and reproducible development workflows.

All projects

Overview

Homelab AI started as a way to run large language models locally, but gradually grew into a complete development environment for experimenting with models, autonomous agents and isolated project workflows.

The goal is not to reproduce the cloud at home. It is to have a system I can understand, change and rebuild — while keeping experiments isolated and repeatable.

Capabilities

Local models

Multiple language and vision models can be served locally and switched depending on the task.

Agent workflows

AI agents work with code, search and development tools inside controlled project environments.

Reproducible environments

Project VMs are built from small golden templates, keeping development environments isolated, disposable and predictable.

Infrastructure as a project

Configuration, recovery procedures and supporting tooling are documented and versioned alongside the system itself.

Design principles

Local first

Models, tools and development environments run locally whenever it makes practical sense.

Disposable over precious

Environments should be easy to rebuild, replace or reset instead of becoming fragile one-off setups.

Automation with an escape hatch

Repetitive work is automated, but the underlying system remains understandable and accessible when something breaks.

Document the boring parts

Backups, recovery, maintenance and configuration are treated as part of the project, not as afterthoughts.

Technology

HOST
Linux · Btrfs · KVM/QEMU · libvirt
AI
llama.cpp · Hermes Agent · local LLMs
DEV
Debian VMs · CodeGraph · Codex · project scaffolding
INFRA
K3s · Caddy · SearXNG · Grafana · custom telemetry

Current state

The system is in active use and evolves together with the projects built on top of it. Recent work has focused on reproducible VM templates, agent tooling, model routing and automated review workflows.

Built to be changed.

The most useful part of the project is not any single model or tool, but having an environment where replacing one does not require rebuilding everything around it.