Repository navigation
Contents
Unfamiliar word or acronym? The Glossary defines it.
Every page of this wiki appears here once (120 pages), grouped by theme, with a line on what it is for and who it is for. If you do not know where to begin, take the numbered core path; Reading order has the same pages with time estimates and checkpoints, and Start here if you are new is the gentlest first page.
Some pages carry a status marker, copied from the page's own banner:
- draft: the page calls itself an unverified draft.
- est. steps: the page was written from reading, and its steps were not run.
- unbuilt: the page describes something that is not built or not applied yet.
A page with no marker has no such banner. It may still say what was and was not run, so read its status note.
- Start here (5)
- Core path: read in this order (21)
- Foundations: OS and Linux (7)
- Foundations: networking (5)
- Foundations: identity and secrets (5)
- Foundations: infrastructure as code (6)
- Foundations: web hosting (3)
- Foundations: security tools and threat modeling (6)
- Foundations: network and host defense (4)
- Foundations: deception and honeypots (11)
- Detection and monitoring (11)
- Foundations: enterprise practice (6)
- Foundations: data governance (1)
- Stage guides and design (11)
- Other clouds (10)
- Reference (8)
- Project process (4)
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| Home | The front door: what the project is, which path fits you, and a short diagram of how it fits together. | everyone | |
| Contents | Every wiki page once, grouped by theme, with what it is for and who it is for. | everyone | |
| Reading order | The core path and every other track as numbered tables with time estimates and checkpoints, for anyone choosing what to read next. | everyone | |
| Why this exists | The author's reasons for building open zero trust education, for anyone who wants to know where it comes from. | everyone | |
| Give feedback | How to report a mistake, an outdated claim or a command that failed, for any reader who spots one. | everyone |
| Step | Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|---|
| 1 | Start here if you are new | Maps homelab ideas to cloud ideas and sets where zero is, for readers new to cloud, Terraform and zero trust. | newcomer | |
| 2 | What is the cloud | What you rent in the cloud, why it has a public address and who is responsible for what, for newcomers. | newcomer | |
| 3 | Networking basics | Addresses, ports, firewalls and why a machine can have a public address and still be unreachable, for newcomers. | newcomer | |
| 4 | Identity, secrets, zero trust | What passwords, tokens and keys are, why they leak and the habits that stop it, for newcomers. | newcomer | |
| 5 | Infrastructure as code | Why infrastructure is written as code, with plan, apply, state and drift, for anyone who has rebuilt a machine by hand. | newcomer | |
| 6 | Git and pull requests | How a change is proposed, checked by automated tests, reviewed and merged, for newcomers to git. | newcomer | |
| 7 | Containers and Docker (optional) | The ideas under Docker and why moving Pi-style containers to the cloud exposes hidden assumptions; optional, for stage 3 readers. | newcomer | |
| 8 | How money works | What costs money, how bills get out of hand and how the cost gate prevents it, for anyone about to rent cloud resources. | newcomer | |
| 9 | Enterprise habits | Why a tiny lab does things the hard way and which habits to take home, for readers finishing the primers. | newcomer | |
| 10 | Architecture overview | The data plane and the control plane and which arrows carry secrets, for anyone starting the core path proper. | everyone | |
| 11 | Why ZTNA and not a VPN | Why this project has no VPN, bastion or open port, and where that reasoning stops holding, for anyone weighing the choice. | everyone | |
| 12 | Twingate | The connectors, resources and groups that are the only way into a droplet here, and why there are two connectors. | everyone | |
| 13 | DigitalOcean network and firewalls | Why a droplet's public address cannot be removed and how a tag-attached cloud firewall makes it silent from first boot. | everyone | |
| 14 | Droplet hardening | What cloud-init does to a connector on first boot, before any human could log in, so the firewall is never the only control. | everyone | |
| 15 | OpenTofu, stacks and modules | Why every resource is declared in OpenTofu and why the code is split into layered stacks and modules. | everyone | |
| 16 | Spacelift | Where plan and apply actually run, who approves them, and why nothing applies from a laptop or from GitHub Actions. | everyone | |
| 17 | Doppler and secrets | Where every real value lives, how it reaches a run and how to rotate it, because nothing in the repository is a credential. | everyone | |
| 18 | CI, tests and the cost gate | The checks every pull request runs, the single CI green gate that guards merging, and the cost gate that stops surprise bills. | everyone | |
| 19 | Threat model | The assets, adversaries, trust boundaries and deliberately accepted risks, sized to a one-operator lab. | everyone | |
| 20 | Lessons learned | What broke during the build, what was really going on and what fixed it, for anyone who wants to skip the lost evenings. | everyone | |
| 21 | Roadmap | The stages from 0 onward, what is built and applied, what is built but unapplied and what is deliberately not planned. | everyone |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| Backups, recovery and patching | Snapshot versus backup, RPO and RTO, the 3-2-1 rule and patch cadence, for beginners deciding what to protect and how. | learner | |
| First hour on a new system | The order of a new machine's first hour: updates, automatic updates, a baseline, then everything else, for anyone setting up a system. | learner | |
| Linux for enterprise beginners | The Linux families, package managers, services, permissions and logs you meet at work, for beginners; commands were not run by the author. | learner | est. steps |
| Red and blue, and choosing your lab OS | Red, blue and purple teams, the written permission you need before any test, and setting up a lab computer you can safely break. | learner | |
| The terminal and your first script | What a terminal, shell and command are, moving around files safely and chaining commands into a first script, for beginners on any operating system. | learner | |
| Virtual machines, containers and cloud service models | What a virtual machine and a container each isolate, and who patches what under IaaS, PaaS and SaaS, for readers whose terms blur. | learner | |
| Windows, Active Directory and macOS | Domains, Active Directory, Group Policy, Kerberos and managed Macs, for readers heading to help desk or systems administration. | learner |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| How a web request works | One HTTPS request from DNS to TLS to the page, and how to read a certificate, for readers after networking basics. | learner | |
| DNS, Cloudflare and hosting your own website | Who owns what in DNS, the common record types, TTL and putting a site behind Cloudflare, for learners hosting their own website. | learner | |
| Subnets, NAT and firewalls by hand | Working out subnets by hand, public versus private addresses, NAT and a default-deny firewall in a local lab, for learners after networking basics. | learner | |
| Behind a CDN: real client IPs and OSI basics | Why a server behind a CDN sees the proxy's address, how the real client address is passed on, and the OSI layers, for people running sites behind one. | learner | |
| IPv6 adoption and handling it safely | IPv6 addressing, why adoption is slow, why this project is IPv4-only and how to handle IPv6 safely in a lab. | learner |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| APIs and tokens from zero | What an API is, how to read a request, a response and JSON, and what a token is, for readers new to all three. | learner | |
| Enterprise identity: SSO, SAML and OIDC | Directories, identity providers, SSO, SAML, OAuth and OIDC in plain words, for readers heading into enterprise identity. | learner | |
| Hashing, encryption and keys | What encoding, hashing, encryption and signing each give you and what they do not, for readers who lump them together. | learner | |
| Plan for failure: blast radius and assuming breach | Blast radius, assume breach and defense in depth as one mindset question to ask of any system. | learner | |
| Secrets from day one | A password manager, Doppler for every asset and the .env rules, as personal habits for anyone about to start writing code. | learner |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| Git from zero | Make an account with a second factor, then clone, branch, commit, push and open your first pull request; for people who have never used git. | learner | |
| Data formats: JSON, YAML, HCL | How to recognize, read and write JSON, YAML and HCL and spot the classic mistakes, for readers before the code starts to look like noise. | learner | |
| OpenTofu from zero | Lesson 1 of the infrastructure as code track: init, plan, apply and destroy on your own machine, for first-time users. | learner | |
| OpenTofu plans, state, drift and recovery | Reading a plan like a reviewer, what state is, how drift happens and how to recover, for learners after OpenTofu from zero. | learner | |
| Build and destroy: one stack per service | Why a bigger environment is split into one stack per service, with its costs and benefits, for learners finishing the infrastructure as code track. | learner | |
| Spacelift from zero | What a hosted infrastructure runner adds to plan and apply, its plan limits and a first stack run and teardown, for learners. | learner |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| LAMP and LEMP from zero | What a web server, an application runtime and a database each do in a LAMP or LEMP stack, for readers who are new to web hosting. | learner | |
| WordPress and PHP security, WAFs and static sites | Why plugins carry most of a WordPress site's risk, what to harden and what a web application firewall does; also why static sites often win. | learner | |
| WordPress at scale: CDN, WAF, caching and CI | The path from one web server to a scaled design, with caches, a CDN, a WAF and a pipeline, for engineers who run web fleets. | engineer |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| Threats in plain words | Vulnerabilities, exploits, phishing, malware and compliance told apart with real dated cases, for readers who meet these words as noise. | learner | |
| Security tools: Nmap, OpenVAS, Burp, Metasploit | The rules for using Nmap, OpenVAS, Wireshark, Burp, ZAP and Metasploit, and what each one is for, for learners in an isolated lab. | learner | |
| Email security | How a message travels, the DNS records and gateways that protect it and whether to run your own mail server, for learners. | learner | |
| Threat model exercise | Build your own threat model of this repository before you open the worked one, for security-minded readers. | security reader | |
| Threat Dragon exercise | Draw this pipeline's trust boundaries in OWASP Threat Dragon and attach threats to them, for security-minded readers. | security reader | |
| Threat frameworks: STRIDE, ATT&CK, ATLAS | The same pipeline viewed through STRIDE, MITRE ATT&CK and MITRE ATLAS, with files to open them, for security-minded readers. | security reader |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| Packet filters compared | Lesson D1: stateless versus stateful filtering, then iptables, nftables, UFW and BSD pf compared, for learners with a basic firewall idea. | learner | |
| IDS and IPS: Snort and Suricata | Lesson D2: what an IDS and an IPS are, where a sensor can watch and why an IPS is riskier, for learners. | learner | |
| File integrity and alerting | Lesson D3: file integrity monitoring, baselines and what to watch, with Tripwire, AIDE, Wazuh, auditd and fail2ban, for learners. | learner | |
| Rate limiting at every layer | Lesson D4: the main limiting algorithms, what to count by and what each layer can see, for learners who run a service. | learner |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| Deception and honeypots: start here | The hub for the deception track: what it covers, the three tracks of lessons and the safety rules that come first. | learner | |
| What deception is | Lessons 1 and 2: decoys, lures, honeytokens and honeypots, and low versus high interaction; reading and paper exercises only. | learner | est. steps |
| Deception safety and law | Lesson 6: the eight minimums for running a decoy that attracts real attackers; read it before any hands-on lesson. Not legal advice. | learner | est. steps |
| Plant a canary token | Lesson 3: build a local tripwire with a bait document, a link and a fake login and trip it yourself. | learner | |
| Honeyfiles on a host you own | Lesson 4: build a decoy file and a watcher that alerts when it is touched, on a host you own. | learner | |
| Deception alerts in the SIEM | Lesson 5: write detection logic over synthetic honeypot events and map it to ATT&CK, for learners wiring decoys into a SIEM. | learner | |
| Design a honeynet | Lesson 10: design an isolated honeynet segment on paper and in a checker before installing anything, for home lab owners. | learner | |
| T-Pot at home | Lesson 11: what the T-Pot honeypot bundle contains and how to keep it internal-only on your own hardware; nothing here was run. | learner | est. steps |
| Anatomy of a cloud honeypot | Lesson 7: what a small internet-facing honeypot in your own cloud account needs to be safe; written from reading, nothing built. | learner | est. steps |
| Cloud Cowrie for a weekend | Lesson 8: build, run and tear down a small Cowrie honeypot in your own cloud account for a fixed window; cloud steps were never run. | learner | est. steps |
| Read what arrived: Cowrie logs | Lesson 9: read Cowrie logs with jq or PowerShell, count what visitors tried and spot a visitor who touched your decoy. | learner |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| A small example: the enterprise landscape | What this two-machine example leaves out and how a company would answer the same questions, for readers asking how it would be watched. | everyone | |
| Detection, Wazuh and the landscape | Detection after prevention fails, with Wazuh and the wider tool landscape; shipping logs is stage 2 and not built. | engineer | unbuilt |
| Logs, SIEM and detection basics | What a log, a metric, a trace and an alert are, and how a log line becomes a rule, for learners new to detection. | learner | |
| Cloud telemetry: what and why | Logs, metrics and traces, and why telemetry crosses a trust boundary; an unverified draft for engineers planning stage 2. | engineer | draft |
| Multiple sites and identity | What a site is, what breaks at two, and why a new site should be a settings file and not new code; an unverified draft for engineers. | engineer | draft |
| Telemetry crosses the trust boundary | How telemetry moves between the cloud and the home SIEM without breaking the no-listener promise; an unverified draft for engineers. | engineer | draft |
| Reading a dashboard as an operator | Ask what question each panel answers and what it would look like if the answer were bad; an unverified draft for operators. | operator | draft |
| Build your own mini SOC | A springboard for building a small cloud security monitoring stack with a cost ceiling you set; an unverified draft for builders. | builder | draft |
| Stage 2 home-side runbook | What must exist at home before the cloud sends anything, for operators; the design is merged and nothing is applied. | operator | unbuilt |
| Grafana dashboards | The three dashboards this repository ships and which question each answers; only tried with synthetic data. | operator | |
| Lab: synthetic multi-site monitoring stack | A hands-on synthetic multi-site monitoring stack where you predict what a silent site does, for builders. | builder |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| Enterprise networks: campus, branch, data center, cloud | How companies build campus, branch, data center and cloud networks compared with this one VPC, for engineers. | engineer | |
| Enterprise infrastructure differences | How large organizations run infrastructure differently from this one-account project, for engineers. | engineer | |
| Enterprise change management (not used here) | Change tickets, CABs and freezes explained for readers who hear them at work; this project uses none of it. | learner | |
| Enterprise identity and secrets at scale | Where this project's Doppler and Twingate choices sit next to enterprise identity and secrets practice, for engineers. | engineer | |
| Working in a company: tickets, change, on-call, documentation | Write a ticket, a change request and a runbook for a real merged change, for learners preparing for company work. | learner | |
| Careers, roles and what to learn next | Roles that surround this work and what to learn next, for readers choosing a direction. | everyone |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| Cross-tenant data flows, governance, retention and DLP | Tenants, governance, retention, purge and DLP when data crosses an account boundary, for engineers. | engineer |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| Fork, private stacks, the pipeline | Make your own private copy, learn which settings are demo values and where the pipeline starts; step 1 of the build track. | builder | |
| Labs: break it on purpose | Five labs where you weaken a safety property on your computer and predict which check will object, for builders. | builder | |
| Build it: zero accounts to stage 1 | The stage guides put in order, with accounts named early and a check at each step, ending in teardown; for learners replicating the build. | builder | |
| Variables, tfvars and secrets | Where each value belongs: a variable, a tfvars file, Doppler or the cost file, for builders. | builder | |
| Teardown checklist | The order of destruction, what survives it and the checks that prove the bill is zero, for builders. | builder | |
| Twingate service accounts in CAH | Where this project uses a Twingate service account and which plan each use needs; nothing was run against an account. | builder | |
| Zero trust at home: two connectors and failover | A home lab with two outbound-only connectors that stays reachable when the internet fails over; nothing was tested for this page. | builder | |
| Why not private droplets (yet) | The honest reason the connector droplets have public addresses and what going private would change; an unverified draft. | engineer | draft |
| Why I picked these tools | Which tool choices are personal picks and where each would change at work, for engineers weighing alternatives. | engineer | |
| From commit to pipeline | What CI, CD, DevOps and DevSecOps mean here and which gate stops what, for engineers. | engineer | |
| Trace one change end to end | One real pull request followed through every gate of the pipeline, for engineers. | engineer |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| Why the clouds differ | The three differences between AWS, Azure and GCP that change the bill and the design; an unverified draft. | engineer | draft |
| AWS: account preparation | Finish with an AWS account that is protected, empty and watched, before any infrastructure; an unverified draft. | builder | draft |
| AWS: the same four pieces | The network, firewall, machine and machine identity built on AWS; an unverified draft. | builder | draft |
| AWS: where the money goes | The AWS charges that surprise learners, the arithmetic, and how to prove the bill is back to zero; an unverified draft. | builder | draft |
| Azure: account preparation | Finish with an Azure subscription that is protected, empty and watched, before any infrastructure; an unverified draft. | builder | draft |
| Azure: the same four pieces | The network, firewall, machine and machine identity built on Azure; an unverified draft. | builder | draft |
| Azure: where the money goes | The Azure charges that surprise learners, the arithmetic, and how to prove the bill is back to zero; an unverified draft. | builder | draft |
| GCP: account preparation | Finish with a Google Cloud project that is protected, empty and watched, before any infrastructure; an unverified draft. | builder | draft |
| GCP: the same four pieces | The network, firewall, machine and machine identity built on GCP; an unverified draft. | builder | draft |
| GCP: where the money goes | Why GCP's no-public-address design can be cheaper, where that stops being true and how to prove the bill is back to zero; an unverified draft. | builder | draft |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| Glossary | Every term the wiki uses in plain language with a pointer to the page that explains it, for all readers. | everyone | |
| Settings reference | Every tunable setting, where it lives and what values it accepts; generated from docs/settings.json. | builder | |
| Terraform reference | Every variable, resource, data source, module call and output, file by file with the reason it exists, for engineers. | engineer | |
| Troubleshooting index | A lookup table from a symptom or error message to the page that has the fix, for anyone stuck. | everyone | |
| Cost | The recorded prices and the monthly ceiling behind the cost gate; lives in the repository, not the wiki. | everyone | |
| Secrets runbook | Where each secret is created and wired into Spacelift and Doppler; lives in the repository, not the wiki. | builder | |
| Stage 0 guide | The author's operating record for stage 0 (project, network, firewall); lives in the repository, not the wiki. | builder | |
| Stage 1 guide | The author's operating record for stage 1 (Twingate access and two connectors); lives in the repository, not the wiki. | builder |
| Page | What it is for and who it is for | Audience | Status |
|---|---|---|---|
| How this project is planned | The written backlog, sprints and definition of done this project uses, for readers curious how the work is run. | everyone | |
| Project status | Open issues and pull requests by state, generated from GitHub; a reference page, not a lesson. | everyone | |
| Repository growth | Stars, forks and weekly merged work drawn from GitHub data, with the as-of date printed. | everyone | |
| Screenshots policy | What may be pictured in the wiki and how to review a picture before it leaks something, for contributors. | builder |
Source for these pages lives in docs/wiki/ and is published by the Wiki workflow on every merge to main. Corrections are welcome as pull requests; edits made in the wiki editor are overwritten on the next publish. Apache-2.0 licensed, see LICENSE and NOTICE in the repository.
Support this project: support.chiefgyk3d.com, or see Home.
Home | Contents | Reading order | Why this exists | Give feedback
Core path: read in this order (21)
- Start here if you are new
- What is the cloud
- Networking basics
- Identity, secrets, zero trust
- Infrastructure as code
- Git and pull requests
- Containers and Docker (optional)
- How money works
- Enterprise habits
- Architecture overview
- Why ZTNA and not a VPN
- Twingate
- DigitalOcean network and firewalls
- Droplet hardening
- OpenTofu, stacks and modules
- Spacelift
- Doppler and secrets
- CI, tests and the cost gate
- Threat model
- Lessons learned
- Roadmap
Foundations: OS and Linux (7)
Foundations: networking (5)
Foundations: identity and secrets (5)
Foundations: infrastructure as code (6)
Foundations: web hosting (3)
Foundations: security tools and threat modeling (6)
Foundations: network and host defense (4)
Foundations: deception and honeypots (11)
- Deception and honeypots: start here
- What deception is (est. steps)
- Deception safety and law (est. steps)
- Plant a canary token
- Honeyfiles on a host you own
- Deception alerts in the SIEM
- Design a honeynet
- T-Pot at home (est. steps)
- Anatomy of a cloud honeypot (est. steps)
- Cloud Cowrie for a weekend (est. steps)
- Read what arrived: Cowrie logs
Detection and monitoring (11)
- A small example: the enterprise landscape
- Detection, Wazuh and the landscape (unbuilt)
- Logs, SIEM and detection basics
- Cloud telemetry: what and why (draft)
- Multiple sites and identity (draft)
- Telemetry crosses the trust boundary (draft)
- Reading a dashboard as an operator (draft)
- Build your own mini SOC (draft)
- Stage 2 home-side runbook (unbuilt)
- Grafana dashboards
- Lab: synthetic multi-site monitoring stack
Foundations: enterprise practice (6)
Foundations: data governance (1)
Stage guides and design (11)
- Fork, private stacks, the pipeline
- Labs: break it on purpose
- Build it: zero accounts to stage 1
- Variables, tfvars and secrets
- Teardown checklist
- Twingate service accounts in CAH
- Zero trust at home: two connectors and failover
- Why not private droplets (yet) (draft)
- Why I picked these tools
- From commit to pipeline
- Trace one change end to end
Other clouds (10)
- Why the clouds differ (draft)
- AWS: account preparation (draft)
- AWS: the same four pieces (draft)
- AWS: where the money goes (draft)
- Azure: account preparation (draft)
- Azure: the same four pieces (draft)
- Azure: where the money goes (draft)
- GCP: account preparation (draft)
- GCP: the same four pieces (draft)
- GCP: where the money goes (draft)