bluehexagons

Open-source systems engineering

Basaltwater

I designed and maintain Basaltwater, a toolkit for setting up and operating Debian machines, Proxmox guests, web services, and development workstations. It packages repeatable infrastructure work into commands that can be inspected, rerun, diagnosed, and recovered.

My role
Project creator and maintainer
Technical areas
Linux, Python, Bash, Proxmox, Git, systemd, web deployment
Source
github.com/bluehexagons/basaltwater

The engineering problem

A server, coding VM, or workstation needs more than an installation script. It needs reproducible configuration, explicit choices about access and services, a way to diagnose drift, and a recovery path when an update fails. Basaltwater brings those operations together without hiding the underlying Linux systems from the operator.

What I built

  • Machine setup: compose server and workstation capabilities, configure Debian hosts, and provision Proxmox guests from a control machine.
  • Web deployments: describe static sites and services in a repository manifest, build in staging, activate with health checks, and preserve service state across releases.
  • Operations: provide diagnostics, maintenance commands, and documented recovery procedures for managed machines and services.
  • Coding environments: prepare VMs with Git workspaces, browser testing, credential handling, and privilege boundaries for development work.

Design decisions

Deployment components get dedicated runtime users and writable data directories. Builds are staged before activation; declared health checks can reject a release and restore the previous one. SQLite services can request a consistent backup before replacement. The goal is to make ordinary updates repeatable while keeping failure handling visible and testable.

For coding environments, I treat the agent as one part of an engineering workflow: isolate Git work, give tools only the access they need, inspect diffs, and verify behavior in a browser or on the target system.

Used in practice

I use Basaltwater to manage this website and my internal tools, services, and workstations. This site's deployment manifest is one public example of that setup.

Inspect the work

This project reflects the work I want to bring to teams: designing reliable interfaces, automating operations, making changes reviewable, and documenting how to recover when systems behave unexpectedly.