~ / blog / 0x01-smoke-test-first-post

Smoke Test — First Post from Production

Verifying the production stack: CI pipeline, container registry, proxy, and database all the way down to the markdown renderer.

Today the site went live at evilgeniuslabs.ca. This post is purely a smoke test — if you're reading it, the stack works.

What shipped today

  • GitLab container registry at registry.glyphdeck.org, TLS-terminated at the public nginx proxy.
  • CI pipeline that builds a self-contained Docker image on every tag and pushes it to the registry.
  • A declarative docker-compose.yml on the app server that pulls :latest from the registry.
  • Outer nginx vhost for this domain with a Let's Encrypt cert and an HTTP → HTTPS redirect.
  • EF Core migrations applied automatically on first boot; identity roles seeded; admin account created.

The renderer

This paragraph exercises italics, bold, both, and inline code. A short snippet to make sure Prism lights up:

public record SmokeTestResult(
    string Component,
    bool Passed,
    TimeSpan Duration
);

var results = new[]
{
    new SmokeTestResult("registry", true, TimeSpan.FromMilliseconds(42)),
    new SmokeTestResult("proxy",    true, TimeSpan.FromMilliseconds(18)),
    new SmokeTestResult("app",      true, TimeSpan.FromMilliseconds(7)),
};

Quotes render as panels with the left accent rail. If this looks right, the blockquote styling survived the Markdig pipeline.

Image

2QTV3Fn

Tables

Component Status Notes
Registry 🟢 registry.glyphdeck.org/eg-projects/evilgeniuslabs.ca:latest
Proxy 🟢 TLS, 301 redirect, client_max_body_size tuned
App 🟢 ASP.NET Core 10, Postgres 17
DNS 🟢 apex + www resolve to the proxy

Pipeline sketch

flowchart LR
    A[git tag v0.1.x] --> B[GitLab CI runner]
    B --> C[docker build]
    C --> D[push to registry]
    D --> E[app server: pull]
    E --> F[compose up -d]
    F --> G[healthz 200 OK]

Images

Next

Wiki and books are already shipped. Comments work. Next up: RSS, sitemap, OG tags — and a proper first real post.

// comments

0 ENTRIES
// sign in to comment