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.ymlon the app server that pulls:latestfrom 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
blockquotestyling survived the Markdig pipeline.
Image

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