whoami
Tiny Go webserver that prints OS information and HTTP request to output.
Usage
Paths
/[?wait=d]
Returns the whoami information (request and network information).
The optional wait
query parameter can be provided to tell the server to wait before sending the response.
The duration is expected in Go's time.Duration
format (e.g. /?wait=100ms
to wait 100 milliseconds).
/api
Returns the whoami information as JSON.
/bench
Always return the same response (1
).
/data?size=n[&unit=u]
Creates a response with a size n
.
The unit of measure, if specified, accepts the following values: KB
, MB
, GB
, TB
(optional, default: bytes).
/echo
WebSocket echo.
/health
Heath check.
GET
,HEAD
, ...: returns a response with the status code defined by thePOST
POST
: changes the status code of theGET
(HEAD
, ...) response.
Flags
Flag | Env var | Description |
---|---|---|
cert |
Give me a certificate. | |
key |
Give me a key. | |
cacert |
Give me a CA chain, enforces mutual TLS | |
port |
WHOAMI_PORT_NUMBER |
Give me a port number. (default: 80 ) |
name |
WHOAMI_NAME |
Give me a name. |
verbose |
Enable verbose logging. |
Examples
$ docker run -d -P --name iamfoo traefik/whoami
$ docker inspect --format '{{ .NetworkSettings.Ports }}' iamfoo
map[80/tcp:[{0.0.0.0 32769}]]
$ curl "http://0.0.0.0:32769"
Hostname : 6e0030e67d6a
IP : 127.0.0.1
IP : ::1
IP : 172.17.0.27
IP : fe80::42:acff:fe11:1b
GET / HTTP/1.1
Host: 0.0.0.0:32769
User-Agent: curl/7.35.0
Accept: */*
# updates health check status
$ curl -X POST -d '500' http://localhost:80/health
# calls the health check
$ curl -v http://localhost:80/health
* Trying ::1:80...
* TCP_NODELAY set
* Connected to localhost (::1) port 80 (#0)
> GET /health HTTP/1.1
> Host: localhost:80
> User-Agent: curl/7.65.3
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 500 Internal Server Error
< Date: Mon, 16 Sep 2019 22:52:40 GMT
< Content-Length: 0
docker run -d -P -v ./certs:/certs --name iamfoo traefik/whoami --cert /certs/example.cert --key /certs/example.key
version: '3.9'
services:
whoami:
image: traefik/whoami
command:
# It tells whoami to start listening on 2001 instead of 80
- --port=2001
- --name=iamfoo