# kev1ndev/nimbustream architecture

> Architecture diagram of the GitHub repository kev1ndev/nimbustream, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kev1ndev/nimbustream
- Repository: https://github.com/kev1ndev/nimbustream

## Overview

NimbusStream is Terraform-defined AWS infrastructure for a private cloud-gaming and GPU-inference environment. The principal workflow is to supply deployment variables, apply the configuration, import its WireGuard client configuration, connect through the VPN, then stream from the private gaming VM. The README documents the key runtime capabilities and relationships; source excerpts were unavailable, so implementation details beyond the documented topology are not inferred.

Main entry points: [`main.tf`](https://github.com/kev1ndev/nimbustream/blob/main/main.tf) (Windows GPU VM), [`outputs.tf`](https://github.com/kev1ndev/nimbustream/blob/main/outputs.tf) (Connection outputs), [`docs/SETUP.md`](https://github.com/kev1ndev/nimbustream/blob/main/docs/SETUP.md) (Sunshine streaming), [`variables.tf`](https://github.com/kev1ndev/nimbustream/blob/main/variables.tf) (Deployment inputs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_deployment["Deployment"]
  node_variables["Deployment inputs<br/>[variables.tf]"]
  node_terraform["Terraform configuration<br/>[main.tf]"]
  node_outputs["Connection outputs<br/>[outputs.tf]"]
end

subgraph group_network["Network and access"]
  node_vpc["Custom VPC<br/>[main.tf]"]
  node_subnets["Multi-AZ subnets<br/>[main.tf]"]
  node_internet["Internet gateway<br/>[main.tf]"]
  node_vpn["WireGuard hub<br/>[main.tf]"]
  node_security["Security groups<br/>[main.tf]"]
end

subgraph group_gaming["Gaming and inference"]
  node_gamingvm["Windows GPU VM<br/>[main.tf]"]
  node_display["Virtual display<br/>[SETUP.md]"]
  node_sunshine["Sunshine streaming<br/>[SETUP.md]"]
  node_gamepad["ViGEmBus controller<br/>[SETUP.md]"]
  node_ollama["Ollama inference<br/>[main.tf]"]
end

subgraph group_operations["Operations and storage"]
  node_ebs[("EBS volumes<br/>[main.tf]")]
  node_kms["KMS encryption<br/>[main.tf]"]
  node_flowlogs["VPC Flow Logs<br/>[main.tf]"]
  node_ssm["SSM Session Manager<br/>[main.tf]"]
end

node_operator(("Operator"))
node_aws["AWS"]
node_client(("WireGuard client"))
node_moonlight(("Moonlight client"))
node_cloudwatch["CloudWatch"]

node_operator -->|"sets values"| node_variables
node_variables -->|"configures"| node_terraform
node_operator -->|"applies"| node_terraform
node_terraform -->|"provisions"| node_aws
node_terraform -->|"exports"| node_outputs
node_aws -->|"hosts"| node_vpc
node_vpc -->|"contains"| node_subnets
node_vpc -->|"routes through"| node_internet
node_subnets -->|"hosts"| node_vpn
node_subnets -->|"hosts"| node_gamingvm
node_security -->|"controls access"| node_vpn
node_security -->|"restricts access"| node_gamingvm
node_client -->|"connects by VPN"| node_vpn
node_vpn -->|"tunnels traffic"| node_gamingvm
node_outputs -->|"provides config"| node_client
node_outputs -->|"provides private IP"| node_operator
node_gamingvm -->|"renders to"| node_display
node_gamingvm -->|"runs"| node_sunshine
node_sunshine -->|"streams video"| node_moonlight
node_moonlight -->|"sends controls"| node_sunshine
node_gamepad -->|"provides controller"| node_gamingvm
node_gamingvm -->|"runs"| node_ollama
node_client -->|"requests inference"| node_ollama
node_gamingvm -->|"uses storage"| node_ebs
node_kms -->|"encrypts"| node_ebs
node_vpc -->|"records traffic"| node_flowlogs
node_flowlogs -->|"sends logs"| node_cloudwatch
node_operator -->|"administers through"| node_ssm
node_ssm -->|"manages"| node_gamingvm

click node_variables "https://github.com/kev1ndev/nimbustream/blob/main/variables.tf"
click node_terraform "https://github.com/kev1ndev/nimbustream/blob/main/main.tf"
click node_outputs "https://github.com/kev1ndev/nimbustream/blob/main/outputs.tf"
click node_vpc "https://github.com/kev1ndev/nimbustream/blob/main/main.tf"
click node_subnets "https://github.com/kev1ndev/nimbustream/blob/main/main.tf"
click node_internet "https://github.com/kev1ndev/nimbustream/blob/main/main.tf"
click node_vpn "https://github.com/kev1ndev/nimbustream/blob/main/main.tf"
click node_security "https://github.com/kev1ndev/nimbustream/blob/main/main.tf"
click node_gamingvm "https://github.com/kev1ndev/nimbustream/blob/main/main.tf"
click node_display "https://github.com/kev1ndev/nimbustream/blob/main/docs/SETUP.md"
click node_sunshine "https://github.com/kev1ndev/nimbustream/blob/main/docs/SETUP.md"
click node_gamepad "https://github.com/kev1ndev/nimbustream/blob/main/docs/SETUP.md"
click node_ollama "https://github.com/kev1ndev/nimbustream/blob/main/main.tf"
click node_ebs "https://github.com/kev1ndev/nimbustream/blob/main/main.tf"
click node_kms "https://github.com/kev1ndev/nimbustream/blob/main/main.tf"
click node_flowlogs "https://github.com/kev1ndev/nimbustream/blob/main/main.tf"
click node_ssm "https://github.com/kev1ndev/nimbustream/blob/main/main.tf"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_variables,node_terraform,node_outputs,node_client,node_moonlight toneBlue
class node_vpc,node_subnets,node_internet,node_vpn,node_security toneAmber
class node_gamingvm,node_display,node_sunshine,node_gamepad,node_ollama toneMint
class node_ebs,node_kms,node_flowlogs,node_ssm toneRose
class node_operator,node_aws,node_cloudwatch toneIndigo
```

## Components

### Deployment

- [Deployment inputs](https://github.com/kev1ndev/nimbustream/blob/main/variables.tf): `variables.tf`
- [Terraform configuration](https://github.com/kev1ndev/nimbustream/blob/main/main.tf): `main.tf`
- [Connection outputs](https://github.com/kev1ndev/nimbustream/blob/main/outputs.tf): `outputs.tf`

### Network and access

- [Custom VPC](https://github.com/kev1ndev/nimbustream/blob/main/main.tf): `main.tf`
- [Multi-AZ subnets](https://github.com/kev1ndev/nimbustream/blob/main/main.tf): `main.tf`
- [Internet gateway](https://github.com/kev1ndev/nimbustream/blob/main/main.tf): `main.tf`
- [WireGuard hub](https://github.com/kev1ndev/nimbustream/blob/main/main.tf): `main.tf`
- [Security groups](https://github.com/kev1ndev/nimbustream/blob/main/main.tf): `main.tf`

### Gaming and inference

- [Windows GPU VM](https://github.com/kev1ndev/nimbustream/blob/main/main.tf): `main.tf`
- [Virtual display](https://github.com/kev1ndev/nimbustream/blob/main/docs/SETUP.md): `docs/SETUP.md`
- [Sunshine streaming](https://github.com/kev1ndev/nimbustream/blob/main/docs/SETUP.md): `docs/SETUP.md`
- [ViGEmBus controller](https://github.com/kev1ndev/nimbustream/blob/main/docs/SETUP.md): `docs/SETUP.md`
- [Ollama inference](https://github.com/kev1ndev/nimbustream/blob/main/main.tf): `main.tf`

### Operations and storage

- [EBS volumes](https://github.com/kev1ndev/nimbustream/blob/main/main.tf): `main.tf`
- [KMS encryption](https://github.com/kev1ndev/nimbustream/blob/main/main.tf): `main.tf`
- [VPC Flow Logs](https://github.com/kev1ndev/nimbustream/blob/main/main.tf): `main.tf`
- [SSM Session Manager](https://github.com/kev1ndev/nimbustream/blob/main/main.tf): `main.tf`

### Other components

- **Operator**
- **AWS**
- **WireGuard client**
- **Moonlight client**
- **CloudWatch**

## Connections

- Operator → Deployment inputs: sets values
- Deployment inputs → Terraform configuration: configures
- Operator → Terraform configuration: applies
- Terraform configuration → AWS: provisions
- Terraform configuration → Connection outputs: exports
- AWS → Custom VPC: hosts
- Custom VPC → Multi-AZ subnets: contains
- Custom VPC → Internet gateway: routes through
- Multi-AZ subnets → WireGuard hub: hosts
- Multi-AZ subnets → Windows GPU VM: hosts
- Security groups → WireGuard hub: controls access
- Security groups → Windows GPU VM: restricts access
- WireGuard client → WireGuard hub: connects by VPN
- WireGuard hub → Windows GPU VM: tunnels traffic
- Connection outputs → WireGuard client: provides config
- Connection outputs → Operator: provides private IP
- Windows GPU VM → Virtual display: renders to
- Windows GPU VM → Sunshine streaming: runs
- Sunshine streaming → Moonlight client: streams video
- Moonlight client → Sunshine streaming: sends controls
- ViGEmBus controller → Windows GPU VM: provides controller
- Windows GPU VM → Ollama inference: runs
- WireGuard client → Ollama inference: requests inference
- Windows GPU VM → EBS volumes: uses storage
- KMS encryption → EBS volumes: encrypts
- Custom VPC → VPC Flow Logs: records traffic
- VPC Flow Logs → CloudWatch: sends logs
- Operator → SSM Session Manager: administers through
- SSM Session Manager → Windows GPU VM: manages
