# Infrastructure Builds — SnS Network Solutions

Actionable infrastructure designs, categorized by the SNS entity that would deliver
each type of work to a client (or internally). Every design defaults to **FOSS** tooling
(≥80% open-source) and uses our existing provider footprint.

## Principles

1. **FOSS-first (80%+ rule).** Prefer open-source over proprietary. Exceptions: Google
   Workspace (mail, calendar, chat, sheets) and AWS-managed services where the FOSS
   equivalent adds unacceptable ops burden.
2. **Proxmox is the hypervisor.** All on-prem VMs and containers run on Proxmox VE.
3. **Automation over clickops.** Ansible for config management. Gitea Actions / KESTRA
   for CI/CD. Infrastructure-as-code where possible.
4. **Security by default.** WireGuard/Tailscale for overlay networking. Fail2ban + UFW
   at every edge. TLS everywhere. Least-privilege.
5. **Simple until proven insufficient.** One VM beats a Kubernetes cluster when you have
   one app to run. Scale up only when the ceiling is hit.
6. **Entity separation.** Each design is tagged to the SNS entity that owns it. Work
   doesn't bleed across entities.

## Provider Inventory

| Provider | Role | Notes |
|----------|------|-------|
| **Proxmox (on-prem)** | Primary hypervisor | KVM VMs + LXC containers. Home lab → client deployments |
| **Linode (Akamai)** | Edge / jump host / light VPS | `172.238.163.85` — current bastion + Tailscale relay |
| **Racknerd** | Cheap dedicated/VPS for non-critical workloads | `racknerd1` 172.245.72.108, `racknerd2` 192.3.165.113 |
| **AWS** | Enterprise cloud, managed services | Use when clients require it or for services with no good FOSS equivalent |
| **Google Workspace** | Email, calendar, chat, docs/sheets | Free tier covers current needs; upgrade to Business Starter when client-facing |

## Folder Structure

```
infra/
├── README.md              ← you are here
├── sns-networking/        ← physical networking, security, on-prem: Proxmox, VMs, hardening, IDS, VPN
├── sns-digital/           ← cloud, web, code: AWS, hosting, CI/CD, dev environments
└── sns-support/           ← managed services: monitoring, backup, RMM, patching
```

## How to use these designs

Each subfolder contains one or more `.md` files describing a buildable design:
- **What it is** — one-paragraph purpose
- **Stack** — specific software, versions/sources, FOSS vs proprietary label
- **Topology** — where it runs (which provider/VM), network diagram if needed
- **Build steps** — enough to reproduce; points to Ansible roles or scripts when they exist
- **Security posture** — what's hardened, what's exposed, trust boundaries
- **Upgrade path** — what to do when this design hits its ceiling

Designs are intentionally simple. Complexity is added only when the simple version fails.
