AS.

How I Run Projects

I build and operate my own stack end-to-end so I can ship quickly, keep control of reliability, and learn the systems side behind every product decision.

Self-hosted operations topology

Traffic routes through split-horizon DNS and HAProxy into app services, cache, and database, with VPN for secure remote operations.

Live

HAProxy routing

I terminate TLS at HAProxy and route hostnames to supervised app processes on target VMs, with least-connections load balancing across backend pools.

Live

Split-horizon DNS

I run Pi-hole for local hostname resolution in parallel with my public registrar, so LAN traffic reaches HAProxy directly without hairpin NAT loopback failures.

Live

TLS certificate management

I manage certificates and renewals so all public endpoints stay HTTPS-secure by default.

Live

Managed switch + firewall controls

I monitor traffic, segment network paths, and enforce firewall policy from the switch layer.

Live

VPN gateway

I host remote-access VPN entry points so I can operate and maintain systems securely offsite.

Live

PostgreSQL + pgvector + Apache AGE

I run relational, vector, and graph workloads on my own database server for apps and analytics.

Live

Valkey/Redis session cache

I use in-memory caching for session state and fast ephemeral data to keep interactions responsive.

Live

Next.js runtime via PM2 + Docker

One Next.js deploy across two VMs and a desktop, separate machines, not a cloned fleet. HAProxy routes each hostname to the target VM process; PM2 supervises Node and Docker runs supporting services where needed.

Planned

Outbound email server

I plan to self-host outbound mail for automation workflows and production notifications.