docker pull umutbasal/whoami:latest
docker run -p 8080:8080 --rm -it --name wh umutbasal/whoami:latest
- Request Remote Address
- Request Headers
- Environment Variables
- System Information
- CPU
- Disk
- Memory
- Network
- Hostname
- Users
- OS Information
- Boot Time
- ... (see sysinfo crate)
- Isolation posture via am-i-isolated
- JSON
- if
Accept: application/json
header is present
- if user agent is
curl
- if path or query includes "j" (eg /j, /?j)
- HTML
- default behavior when visiting from browser
- if path or query includes "h" (eg /h, /?h)
curl http://localhost:8080/ | jq '.sysinfo.host_name'
"ubuntu"
# best way to work with cli
curl http://localhost:8080/ | yq -P | less
environment:
CARGO: /Users/user/.rustup/toolchains/nightly-aarch64-apple-darwin/bin/cargo
CARGO_HOME: /Users/user/.cargo
....
# same html view for cli
curl http://localhost:8080/h | less
<h1>environment</h1>
<pre>
+--------------------------------------+-------------------------------------------------------------------------+
| CARGO | /Users/user/.rustup/toolchains/nightly-aarch64-apple-darwin/bin/cargo |
+--------------------------------------+-------------------------------------------------------------------------+
| CARGO_HOME | /Users/user/.cargo |
+--------------------------------------+-------------------------------------------------------------------------+
...
![image](https://private-user-images.githubusercontent.com/21194079/261723478-0712ee8e-c63b-464f-be32-47b2d6bce258.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1MzY0MzEsIm5iZiI6MTczOTUzNjEzMSwicGF0aCI6Ii8yMTE5NDA3OS8yNjE3MjM0NzgtMDcxMmVlOGUtYzYzYi00NjRmLWJlMzItNDdiMmQ2YmNlMjU4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDEyMjg1MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTllOGZjZjg3MDgxYzE2ZTUyMDQzMTIyOTEzOTMzMDg2OGIxNTQxZDIyOWNkMzg3NDBmODc5Y2ZkYmU5OTE3ODQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QjVgxw6DA705SrNsWDSj-kSfPPzCfgLT_Oa-4tT5WAU)