AI systems · self-hosted in New York

Building local AI on local infrastructure, right down to the property.

I design, run, and refine the full local AI stack. Compute, agent workflows, declarative workstations, sandboxes and more.

Built from a commercial garage. I acquired and renovated the building in 2021 with a vision for a purpose-built post-COVID workspace.

How this site reaches you

You are not in the cloud

This website is not a cloud-hosted $5 a month special. You are being served directly from a commercial garage I own on hardware and a stack that I fully manage.

  1. 01 Verizon Fios /26 public IPv4 space enters the garage
  2. 02 astrocore Alpine Linux · libvirt host
  3. 03 web01 Bridged VM on the Fios edge
  4. 04 Docker edge Reverse proxy · ACME · TLS
  5. 05 Static nginx Small, unprivileged site container
mtr | doug.masie.ro
Ghostty VT100 / WASM · click to type interactive demo
❯ mtr doug.masie.ro
Representative MTR route: your local gateway, your ISP edge, internet transit, Verizon Fios edge, doug.masie.ro on the Fios /26 allocation, then the private handoff through web01, nginx proxy on port 443, and the site container on port 8080.

Terminal rendering by coder/ghostty-web ↗.

Local AI stack

Models local. Workspace anywhere.

Inference stays on hardware I control, in a building that I own, while a reproducible remote workflow lets me move between machines without losing context.

Apple Silicon

m3oracle

MLX-LM inference

An SSH-managed M3 Max serves an OpenAI-compatible MLX-LM endpoint to the private network. A separate self-hosted Open WebUI VM makes it useful from a clean browser interface. Self-hosted models are also defined in my Pi settings, making local inference available directly inside the coding-agent harness.

  • 16CPU cores
  • 128 GBunified memory
  • launchdmanaged service
MLX-LMOpenAI APIOpen WebUI
MLX-LMOpenAI APIPi
NixOS workstation

nextgate

Heavy workstation compute

The primary workstation pairs a high-core-count Ryzen CPU with flagship NVIDIA compute and fast local NVMe, configured declaratively for graphics and containers.

CPURyzen 9 9950X3D16 cores · 32 threads
GPUGeForce RTX 509032 GB VRAM
Memory64 GBDDR5 system RAM
Storage6 TB NVMeSamsung 9100 + 990 PRO
InputZSA Voyager + NavigatorView shared layout ↗

Compute layer

astrocore

Alpine Linux 3.21 Xeon E5-1630 v3 · 4C / 8T 256 GB memory 2 × 960 GB SSD libvirt / KVM NFS-backed VM disks routed + bridged networks
10highlighted service VMs
02

AI & development

  • OpenWebUI
  • gitea
03

Applications

  • immich
  • web01
  • transfer.sh
04

Network Core

  • OpenVPN
  • Internal DNS
  • pi-hole
  • UniFi Controller
01

Operations

  • graylog

Storage and recovery

TrueNAS Community Edition ↗

Encrypted ZFS - Replicated Home

A dedicated host runs the garage storage layer. AES-256-GCM datasets hold VM disks, Immich media, personal data, and transfer.sh storage. Nightly ZFS snapshots are retained for two to four weeks and pushed over SSH to a ZFS target at my home. Living less than a mile away and also having Fios at home yields low latency and high bandwidth sends.

garage datasetsencrypted ZFS snapshotsSSH replicationhome ZFS target
CPU
Xeon E5-1620 · 4C / 8T
Memory
64 GB ECC DDR3
Data disks
4 × 18 TB
Pool
32.7 TiB · mirrored vdevs
Boot
2 × 240 GB SSD mirror
Network
10 GbE + 1 GbE

Mobile NixOS workstation

ThinkPad X1 Carbon Gen 14

nixnode

A compact Sway and Wayland laptop that carries the same declarative toolchain away from the garage, then reaches back through OpenVPN and tssh.

OS
NixOS 25.11
CPU
Core Ultra 7 366H · 16 cores
GPU
Intel integrated graphics
Memory
32 GB
Storage
Samsung SSD 9100 PRO 2TB
Display
14-inch · 2880 × 1800 · 120 Hz
Portable 2nd Display
FlipAction Elite 16-inch · 3840 × 2400 · 60 Hz

Remote agent loop

A durable path back to the workstation

From nixnode, OpenVPN reaches the garage network, tssh provides a roaming SSH session, and Herdr keeps parallel AI-agent workspaces organized on nextgate.

  1. Nnixnodelaptop
  2. OpenVPN
  3. ttsshresilient SSH
  4. remote
  5. HHerdragent workspaces
  6. on
  7. GnextgateRTX compute
renix | nextgate
Ghostty VT100 / WASM · simulated NixOS rebuild interactive demo
❯ renix full
A simulated renix full run checks Nix flake inputs and custom builds, evaluates and rebuilds the nextgate NixOS configuration, switches the system generation, updates Pi extensions and skills, and cleans old generations.

Terminal rendering by coder/ghostty-web ↗.

Self-hosted property

The garage is part of the system.

Owning the property lets me keep compute, storage, networking, observability, and core applications under my control, close to the hardware and independent of rented cloud infrastructure or leased office space.

Front of Doug's commercial garage
Commercial GarageAcquired and renovated in 2021
Compute and networking rack inside the garage
RackLocal compute, storage, and networking
Doug's local AI workstation
WorkspaceLocal AI, declarative tools, and daily input

Open-source core

Working in the tools I use.

Contributor with strong working knowledge of the applications and tools I use every day.

Merged contribution

pi.dev · coding agent

Guard undici installation under Bun

Fixed a startup crash in the Bun-compiled release while preserving the Node.js compatibility path. Tested through the same NixOS workflow used day to day.

PR#4661merged May 2026
View merged pull request
Merged contribution

exo · distributed AI

Add --system-prompt to the exo CLI

Extended the exo command-line interface with configurable system prompts, matching functionality already available through its OpenAI-compatible API.

PR#585merged January 2025
View merged pull request
AI toolkit

pi

Agent CLI, unified LLM API, TUI, web UI libraries, and supporting tools.

GitHub ↗
Agent skills

mattpocock-skills

Reusable engineering skills and working patterns for coding agents.

GitHub ↗
Agent workflow

herdr

A terminal-native multiplexer for organizing persistent AI-agent workspaces.

GitHub ↗
Distributed AI

exo

Run AI workloads across a distributed cluster of everyday devices.

GitHub ↗
Source control

gitea

Private Git hosting available only on the internal network.

GitHub ↗
Private networking

openvpn

Secure remote access into the garage network and locally hosted services.

GitHub ↗
Virtualization

libvirt

The management layer behind the KVM virtual machines running on astrocore.

GitLab ↗
Containers

docker

Container runtime and tooling used to package and operate locally hosted applications.

GitHub ↗
Infrastructure automation

ansible

Configuration management, application deployment, and infrastructure orchestration.

GitHub ↗
Observability

graylog

Centralized logs running locally in the garage.

GitHub ↗
File handoff

transfer.sh

Private, self-hosted file sharing backed by an encrypted ZFS dataset.

GitHub ↗
Network services

pi-hole

Self-hosted network DNS filtering for the garage and private network.

GitHub ↗
Desktop environment

sway

A keyboard-driven Wayland compositor used across declarative Linux workstations.

GitHub ↗
Command line

fish

A friendly interactive shell used across local workstations and remote systems.

GitHub ↗
Photo library

immich

Self-hosted photo and video management with media stored on TrueNAS.

GitHub ↗
Doug Masiero

Doug Masiero · New York

AI, systems, and the infrastructure connecting them.

The public work is on GitHub. The rest is running in the garage.