From d25780508a9cdd9ae970220a4ed271949f388378 Mon Sep 17 00:00:00 2001 From: Einar Date: Thu, 30 Jul 2026 15:07:23 +0200 Subject: [PATCH] State that the Workbench port is HTTPS only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reaching the published Workbench port over plain http gets no reply at all — the Chronicle port multiplexes HTTP/1.1 and HTTP/2 through ALPN, which requires TLS — so name the requirement and the symptom where the URL is printed and documented. --- Documentation/reference/run.md | 7 +++++-- Source/Cli/Commands/Run/RunCommand.cs | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Documentation/reference/run.md b/Documentation/reference/run.md index c279ad6..c911018 100644 --- a/Documentation/reference/run.md +++ b/Documentation/reference/run.md @@ -47,8 +47,11 @@ docker run --rm -p 9090:9090 -p 35000:35000 -v "$PWD":/eventmodel cratis/stage:l - The **Chronicle Workbench** is published on `https://localhost:35000` (change the host side with `--workbench-port`), so you can inspect the session's events, observers and read models while it runs. - `--rm` removes the container when it exits, so every run starts from a clean, in-memory store. -The Workbench is served over HTTPS with a self-signed development certificate, so your browser will warn about it -the first time. Sign in with the Stage image's development credentials — user `admin`, password `ChangeMeNow!`. +The Workbench is **HTTPS only** — open `https://localhost:35000`, not `http://`. The Chronicle port multiplexes +HTTP/1.1 and HTTP/2 through ALPN, which requires TLS, so a plain `http://` request to it returns nothing at all +(`ERR_EMPTY_RESPONSE` in a browser, `curl: (52) Empty reply from server`). The certificate is a self-signed +development one, so your browser warns the first time. Sign in with the Stage image's development credentials — +user `admin`, password `ChangeMeNow!`. The command streams the container's output and exits with the container's exit code. Stop the session with `Ctrl+C`. diff --git a/Source/Cli/Commands/Run/RunCommand.cs b/Source/Cli/Commands/Run/RunCommand.cs index 0d3ba0b..03b647c 100644 --- a/Source/Cli/Commands/Run/RunCommand.cs +++ b/Source/Cli/Commands/Run/RunCommand.cs @@ -49,7 +49,7 @@ protected override async Task ExecuteAsync(CommandContext context, RunSetti !string.Equals(format, OutputFormats.JsonCompact, StringComparison.Ordinal)) { AnsiConsole.MarkupLine($" [{OutputFormatter.Muted.ToMarkup()}]Starting Stage from {path.EscapeMarkup()} on http://localhost:{settings.Port}[/]"); - AnsiConsole.MarkupLine($" [{OutputFormatter.Muted.ToMarkup()}]Chronicle Workbench on https://localhost:{settings.WorkbenchPort}[/]"); + AnsiConsole.MarkupLine($" [{OutputFormatter.Muted.ToMarkup()}]Chronicle Workbench on https://localhost:{settings.WorkbenchPort} (HTTPS only — plain http returns an empty response)[/]"); } Process? process;