Infrastructure

Architecture diagram of the blog deployment pipeline.

2 min read
                         ┌─────────────────────────────────────────────────────────┐
                         │                    GitHub Actions                       │
                         │                                                         │
                         │  ┌─────────┐   ┌─────────┐   ┌────────┐   ┌────────┐  │
                         │  │  Lint   │──▶│  Build  │──▶│  Test  │──▶│ Deploy │  │
                         │  │         │   │         │   │        │   │        │  │
                         │  │validate │   │metadata │   │security│   │artifact│  │
                         │  │  front- │   │  inject │   │  scan  │   │ upload │  │
                         │  │ matter  │   │  Hugo   │   │  link  │   │  OIDC  │  │
                         │  │template │   │ compile │   │  check │   │  auth  │  │
                         │  │ metrics │   │ minify  │   │        │   │        │  │
                         │  └─────────┘   └─────────┘   └────────┘   └────┬───┘  │
                         │                                                 │      │
                         └─────────────────────────────────────────────────┼──────┘
                                                                          │
  ┌──────────────┐        ┌──────────────┐                                │
  │   Developer  │        │    GitHub     │                                ▼
  │    Laptop    │──────▶│  Repository  │          ┌──────────────────────────┐
  │              │  git   │              │          │   GitHub Pages CDN       │
  │  Hugo 0.152  │  push  │    main      │          │                          │
  │  Docker      │        │              │          │   Static HTML/CSS/JS     │
  │  Make        │        │              │          │   Fingerprinted assets   │
  │  .githooks   │        │              │          │   SRI integrity hashes   │
  └──────────────┘        └──────┬───────┘          └────────────┬─────────────┘
                                 │                               │
                                 │                               │ HTTPS
                          ┌──────┴───────┐                       │
                          │  Dependabot  │                       ▼
                          │              │          ┌──────────────────────────┐
                          │  weekly      │          │      End User            │
                          │  action      │          │                          │
                          │  version     │          │   Browser                │
                          │  updates     │          │   CSP enforced           │
                          └──────────────┘          │   SRI verified           │
                                                    └──────────────────────────┘

Legend:

  • ──▶ Data flow / dependency
  • Boxes represent services or components

Summary:

  • Total moving parts: 4
  • Total services with an SLA: 0
  • Total containers in production: 0
  • Total databases: 0
  • Total cost: $0/month