I build and run a personal environment for my applications, self-hosted services and AI experiments. It gives me a reason to follow software beyond the interface: into deployment, monitoring, maintenance and recovery.
Part workshop, part everyday infrastructure. A place to try an idea, see what breaks and understand why.
The useful part is how the pieces work together and how a change can be traced.
Foundation
Separate places to run things
Proxmox provides virtual machines and Linux containers for different services. I keep application runtime, build work and experiments in distinct roles so that dependencies, resource use and maintenance have identifiable owners.
Proxmox · VMs · LXC · LinuxDelivery
A route from source to service
Git repositories hold code and versioned operational tooling. Jenkins and remote test environments support my application work. The pipeline result, the deployed revision and a working user journey are separate things to verify.
GitLab · Jenkins · browser testsAccess
Names and entry points with purpose
DNS, HTTPS and reverse proxying connect the services people actually use. Public pages and private tools have different access requirements; publishing a website does not mean exposing the development environment behind it.
DNS · TLS · reverse proxyingOperations
Know what needs attention
Checkmk collects service checks and owns alerting. Grafana presents selected metrics from that monitoring layer. I keep a distinction between a reachable process, a healthy application and data that is still current.
Checkmk · Grafana · service health
02 / More than an experiment
Software I build. Services I maintain.
The lab supports private application environments, source hosting, build and test workflows, monitoring and home automation. This website also reaches its hosting environment through a verified static build and a controlled release step.
That makes the work tangible: an update needs a route back, a failed test needs evidence, and an alert needs to explain what I should investigate. I can see the consequences of decisions that would otherwise stay hidden behind a deployment button.
Proxmox Backup Server is part of the backup setup. I treat recovery as its own question: what data is included, what depends on application-level exports, and what has actually been verified in a restore. A successful backup job alone does not answer all three.
Small questions, explicit limits and evidence I can inspect.
01 /
Make agent work resumable
With Hermes, I explore task records, reusable skills, scheduled checks and integrations. My workspace experiments keep decisions and execution evidence next to the work, so resuming a task does not depend on remembering the last chat.
The question: can I see what was requested, what ran and what remains unverified?
02 /
Test what memory really helps
Experiments with Hindsight distinguish retaining information, retrieving it and using it correctly in an answer. I also explore local inference on different hardware, checking tool calls and structured output as well as response quality.
The question: does the system use the right evidence, including when a previous decision has changed?
03 /
Keep the person in the loop
In GeoAtlas, I apply related ideas to an Angular interface: the assistant uses application commands, shows progress and asks for confirmation where required. Supported actions can be undone; stopping a run does not reverse effects already completed.
Running the environment helps me connect frontend decisions with the rest of the product. What happens when an API is unavailable? Can a long operation be cancelled? Which state survives a restart? How will the next person diagnose a failure?
These are useful questions in an Angular application too. They influence the interfaces I design, the tests I choose and the handover I prepare for a team. The homelab is my personal practice environment; client hosting, availability and support are scoped separately.