System Architecture

High-level view of my production-style infrastructure environment, including routing, observability, DNS, and containerised services.

Traffic Flow

User
  ↓
Cloudflare DNS
  ↓
Nginx Reverse Proxy
  ↓
Next.js Frontend (waqasmohammad.com)
  ↓
Docker Services Layer
  ├── Umami Analytics
  ├── Ghost Blog (external)
  ├── Static Assets
  ↓
Data + Observability Layer
  ├── Prometheus (metrics)
  ├── Grafana (visualisation)
  └── Umami Dashboard

Frontend Layer

Next.js application serving as the primary interface for users, deployed in a containerised environment with reverse proxy routing.

Routing Layer

Nginx Proxy Manager handles SSL termination, routing, and domain-level request handling across multiple services.

Observability Layer

Prometheus and Grafana provide system-level monitoring, while Umami tracks user behaviour and engagement across the site.

Infrastructure Layer

Docker-based service isolation running on a Linux host with structured networking, persistent storage, and service segmentation.

Engineering Principle

This architecture is designed to simulate production-grade infrastructure patterns: separation of concerns, observable systems, modular services, and controlled routing layers. The goal is not complexity, but clarity, reliability, and operational visibility.