Tiny Go webserver that prints OS information and HTTP request to output.
Returns the whoami information (request and network information).
The optional time.Duration
format (e.g. /?wait=100ms
to wait 100 milliseconds).
Returns the whoami information as JSON.
Always return the same response (1
).
Creates a response with a size n
.
The unit of measure, if specified, accepts the following values: KB
, MB
, GB
, TB
(optional, default: bytes).
WebSocket echo.
Heath check.
GET
,HEAD
, ...: returns a response with the status code defined by thePOST
POST
: changes the status code of theGET
(HEAD
, ...) response.
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. |
$ 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