Skip to content

Commit 8bb39b2

Browse files
committed
Changelog for v43 and simplifying the readme
1 parent ab7a549 commit 8bb39b2

3 files changed

Lines changed: 27 additions & 23 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## Version `43` - 2026-10-24
2+
* Rebuild to address [Node October security releases](https://nodejs.org/en/blog/vulnerability/october-2026-security-releases)
3+
* Used this opportunity to update to Node 26
4+
15
## Version `42` - 2026-09-18
26
* HTTP2 support added
37
* The max header size is now implemented in code, due to Node's HTTP2 limitations.

‎README.md‎

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ It comes with various options that can manipulate the response output, see the t
88

99
![browser](./screenshots/screenshot.png)
1010

11-
The image is available on [Docker Hub](https://hub.docker.com/r/mendhak/http-https-echo): `mendhak/http-https-echo:42`
12-
The image is available on [Github Container Registry](https://github.com/mendhak/docker-http-https-echo/pkgs/container/http-https-echo): `ghcr.io/mendhak/http-https-echo:42`
11+
The image is available on [Docker Hub](https://hub.docker.com/r/mendhak/http-https-echo): `mendhak/http-https-echo`
12+
The image is available on [Github Container Registry](https://github.com/mendhak/docker-http-https-echo/pkgs/container/http-https-echo): `ghcr.io/mendhak/http-https-echo`
1313

14-
Please do not use the `:latest` tag as it will break without warning, use a specific version instead.
14+
If you use the `:latest` tag, remember it could break without warning. Try to use a specific version instead.
1515

1616
This image is executed as non root by default and is fully compliant with Kubernetes or Openshift deployment.
1717

@@ -48,7 +48,7 @@ This image is executed as non root by default and is fully compliant with Kubern
4848

4949
Run with Docker
5050

51-
docker run -p 8080:8080 -p 8443:8443 --rm -t mendhak/http-https-echo:42
51+
docker run -p 8080:8080 -p 8443:8443 --rm -t mendhak/http-https-echo
5252

5353
Or run with Docker Compose
5454

@@ -65,13 +65,13 @@ You can choose a different internal port instead of 8080 and 8443 with the `HTTP
6565

6666
In this example I'm setting http to listen on 8888, and https to listen on 9999.
6767

68-
docker run -e HTTP_PORT=8888 -e HTTPS_PORT=9999 -p 8080:8888 -p 8443:9999 --rm -t mendhak/http-https-echo:42
68+
docker run -e HTTP_PORT=8888 -e HTTPS_PORT=9999 -p 8080:8888 -p 8443:9999 --rm -t mendhak/http-https-echo
6969

7070

7171
With docker compose, this would be:
7272

7373
my-http-listener:
74-
image: mendhak/http-https-echo:42
74+
image: mendhak/http-https-echo
7575
environment:
7676
- HTTP_PORT=8888
7777
- HTTPS_PORT=9999
@@ -87,7 +87,7 @@ The certificates are at `/app/fullchain.pem` and `/app/testpk.pem`.
8787
You can use volume mounting to substitute the certificate and private key with your own.
8888

8989
my-http-listener:
90-
image: mendhak/http-https-echo:42
90+
image: mendhak/http-https-echo
9191
ports:
9292
- "8080:8080"
9393
- "8443:8443"
@@ -102,14 +102,14 @@ You can use the environment variables `HTTPS_CERT_FILE` and `HTTPS_KEY_FILE` to
102102

103103
By default, Express is configured to trust forwarded proxy headers from loopback, link-local, and private IP ranges. To also trust additional proxy IPs or subnets, set `ADDITIONAL_TRUSTED_PROXIES` to a single value or a comma-separated list.
104104

105-
docker run -e ADDITIONAL_TRUSTED_PROXIES="2001:db8::/32,203.0.113.10" -p 8080:8080 -p 8443:8443 --rm -t mendhak/http-https-echo:42
105+
docker run -e ADDITIONAL_TRUSTED_PROXIES="2001:db8::/32,203.0.113.10" -p 8080:8080 -p 8443:8443 --rm -t mendhak/http-https-echo
106106

107107

108108
## Decode JWT header
109109

110110
If you specify the header that contains the JWT, the echo output will contain the decoded JWT. Use the `JWT_HEADER` environment variable for this.
111111

112-
docker run -e JWT_HEADER=Authentication -p 8080:8080 -p 8443:8443 --rm -it mendhak/http-https-echo:42
112+
docker run -e JWT_HEADER=Authentication -p 8080:8080 -p 8443:8443 --rm -it mendhak/http-https-echo
113113

114114

115115
Now make your request with `Authentication: eyJ...` header (it should also work with the `Authentication: Bearer eyJ...` schema too):
@@ -155,7 +155,7 @@ $ curl -sk --http2-prior-knowledge http://localhost:8080/ | jq '.httpVersion'
155155

156156
In the log output set the environment variable `DISABLE_REQUEST_LOGS` to true, to disable the specific ExpressJS request log lines. The ones like `::ffff:172.17.0.1 - - [03/Jan/2022:21:31:51 +0000] "GET /xyz HTTP/1.1" 200 423 "-" "curl/7.68.0"`. The JSON output will still appear.
157157

158-
docker run --rm -e DISABLE_REQUEST_LOGS=true --name http-echo-tests -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo:42
158+
docker run --rm -e DISABLE_REQUEST_LOGS=true --name http-echo-tests -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo
159159

160160

161161
## Do not log specific path
@@ -164,12 +164,12 @@ Set the environment variable `LOG_IGNORE_PATH` to a path or a regex you would li
164164
This can help reduce noise from healthchecks in orchestration/infrastructure like Swarm, Kubernetes, ALBs, etc.
165165

166166
# Ignore a single path
167-
docker run -e LOG_IGNORE_PATH=/ping -p 8080:8080 -p 8443:8443 --rm -t mendhak/http-https-echo:42
167+
docker run -e LOG_IGNORE_PATH=/ping -p 8080:8080 -p 8443:8443 --rm -t mendhak/http-https-echo
168168
# Ignore multiple paths
169-
docker run -e LOG_IGNORE_PATH="^\/ping|^\/health|^\/metrics" -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo:42
169+
docker run -e LOG_IGNORE_PATH="^\/ping|^\/health|^\/metrics" -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo
170170
# Ignore all paths
171-
docker run -e LOG_IGNORE_PATH=".*" -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo:42
172-
docker run -e LOG_IGNORE_PATH="^" -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo:42
171+
docker run -e LOG_IGNORE_PATH=".*" -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo
172+
docker run -e LOG_IGNORE_PATH="^" -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo
173173

174174

175175

@@ -196,15 +196,15 @@ Will contain a `json` property in the response/output.
196196
You can disable new lines in the log output by setting the environment variable `LOG_WITHOUT_NEWLINE`. For example,
197197

198198
```bash
199-
docker run -e LOG_WITHOUT_NEWLINE=true -p 8080:8080 -p 8443:8443 --rm -t mendhak/http-https-echo:42
199+
docker run -e LOG_WITHOUT_NEWLINE=true -p 8080:8080 -p 8443:8443 --rm -t mendhak/http-https-echo
200200
```
201201

202202
## Send an empty response
203203

204204
You can disable the JSON output in the response by setting the environment variable `ECHO_BACK_TO_CLIENT`. For example,
205205

206206
```bash
207-
docker run -e ECHO_BACK_TO_CLIENT=false -p 8080:8080 -p 8443:8443 --rm -t mendhak/http-https-echo:42
207+
docker run -e ECHO_BACK_TO_CLIENT=false -p 8080:8080 -p 8443:8443 --rm -t mendhak/http-https-echo
208208
```
209209

210210
## Custom status code
@@ -285,7 +285,7 @@ You can have environment variables (that are visible to the echo server's proces
285285
Pass the `ECHO_INCLUDE_ENV_VARS=1` environment variable in.
286286

287287
```bash
288-
docker run -d --rm -e ECHO_INCLUDE_ENV_VARS=1 --name http-echo-tests -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo:42
288+
docker run -d --rm -e ECHO_INCLUDE_ENV_VARS=1 --name http-echo-tests -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo
289289
```
290290

291291
Then do a normal request via curl or browser, and you will see the `env` property in the response body.
@@ -325,7 +325,7 @@ openssl pkcs12 -export -in cert.pem -inkey testpk.pem -out certpkcs12.pfx
325325
By default, the headers in the response body are lowercased. To attempt to preserve the case of headers in the response body, set the environment variable `PRESERVE_HEADER_CASE` to true.
326326

327327
```bash
328-
docker run -e PRESERVE_HEADER_CASE=true -p 8080:8080 -p 8443:8443 --rm -t mendhak/http-https-echo:42
328+
docker run -e PRESERVE_HEADER_CASE=true -p 8080:8080 -p 8443:8443 --rm -t mendhak/http-https-echo
329329
```
330330

331331
> **Note:** This only has an effect over HTTP/1.1. HTTP/2 requires all header names be lowercase.
@@ -336,23 +336,23 @@ To override the response body with a file, set the environment variable `OVERRID
336336
The file path needs to be in the `/app` directory.
337337

338338
```bash
339-
docker run -d --rm -v ${PWD}/test.html:/app/test.html -p 8080:8080 -e OVERRIDE_RESPONSE_BODY_FILE_PATH=/test.html -t mendhak/http-https-echo:42
339+
docker run -d --rm -v ${PWD}/test.html:/app/test.html -p 8080:8080 -e OVERRIDE_RESPONSE_BODY_FILE_PATH=/test.html -t mendhak/http-https-echo
340340
```
341341

342342
## Set a maximum header size
343343

344344
You can use the `MAX_HEADER_SIZE` environment variable to set a maximum header size in bytes. The default is 1MB.
345345

346346
```bash
347-
docker run -d --rm -e MAX_HEADER_SIZE=1000 -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo:42
347+
docker run -d --rm -e MAX_HEADER_SIZE=1000 -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo
348348
```
349349

350350
## Cookies and Signed Cookies
351351

352352
Make a request with a `Cookie` header and the response will include the cookies:
353353

354354
```bash
355-
docker run -d --rm --name http-echo-tests -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo:42
355+
docker run -d --rm --name http-echo-tests -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo
356356
```
357357

358358
Then make a request with a cookie header:
@@ -364,7 +364,7 @@ curl -s http://localhost:8080/ -H "Cookie: foo=bar; baz=qux"
364364
To enable signed cookie support, set the `COOKIE_SECRET` environment variable. Signed cookies appear in the `signedCookies` section of the response:
365365

366366
```bash
367-
docker run -d --rm -e COOKIE_SECRET=mysecretkey123 --name http-echo-tests -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo:42
367+
docker run -d --rm -e COOKIE_SECRET=mysecretkey123 --name http-echo-tests -p 8080:8080 -p 8443:8443 -t mendhak/http-https-echo
368368
```
369369

370370
Now you need to generate a signed cookie, and send it in the header. Here's a convenience node snippet:

‎docker-compose.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: '3'
22
services:
33
my-http-listener:
4-
image: mendhak/http-https-echo:42
4+
image: mendhak/http-https-echo
55
environment:
66
- HTTP_PORT=8888
77
- HTTPS_PORT=9999

0 commit comments

Comments
 (0)