Download the PHP package whispphp/whisp without Composer
On this page you can find all versions of the php package whispphp/whisp. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download whispphp/whisp
More information about whispphp/whisp
Files in whispphp/whisp
Package whisp
Short Description Pure PHP SSH server designed for terminal apps
License MIT
Informations about the package whisp
Whisp
Your pure* PHP SSH server ∙ the simplest & best way to build PHP SSH apps
[!NOTE] Quick example: sign our guestbook (See the code)
Got a one-time secret to share?
ssh [email protected]
Explore the full docs at WhispPHP.com »
Installation
We recommend using our template project to get setup with Whisp & Laravel Prompts.
You can also add Whisp to an existing project with composer.
Coming soon: Laravel package, Laravel starter kit, and a Docker image.
Requirements
- PHP 8.2+
- FFI, pcntl, and libsodium modules
Usage
Run the server on the port & IP you'd like, with the apps you want to make available. Each connection is forked to its own process and runs independently.
Once running you can test with:
Default app
Guestbook app
Environment variables available to each app
These are each available as environment variables.
| Variable | Description | Notes |
|---|---|---|
| WHISP_APP | The name of the app being requested | |
| WHISP_CLIENT_IP | The IP address of the connecting client | |
| WHISP_USER_PUBLIC_KEY | Validated public key of the connecting user | This has been checked against their private key and can be trusted |
| WHISP_TTY | The TTY information for the connection | e.g. /dev/ttys072 |
| WHISP_USERNAME | The username used in the SSH connection | Unavailable when no username passed, or when the username is a valid app |
| WHISP_COLS | Requested terminal width in chars | |
| WHISP_ROWS | Requested terminal height | |
| WHISP_WIDTH_PX | Requested terminal width in pixels | |
| WHISP_HEIGHT_PX | Requested terminal height in pixels | |
| WHISPPARAM{name} | Passed only when using app params, i.e. chat-{roomName} |
Clients requesting apps
There are two ways for clients to request an available app:
- Username method:
ssh app@server- we use the 'username' here as the app name if it matches an available app.- Much cleaner, but means if you need the username for auth you can't define the app this way
- Command method:
ssh server -t app- request an interactive shell (-t) with the requestedapp
Explore the full docs at WhispPHP.com », which also show how to setup Whisp to listen on port 22, start on boot, and restart on failure with systemd.
Live Examples
Play the Dinorun game ∙ See the code
Share one-time secrets Fully encrypted, and fully secure. Only the person with the valid private SSH key can access them.
View your sunrise/sunset times ∙ See the code
Find your closest World Heritage Sites
Support & Credits
This was developed by Ashley Hindle. If you like it, please star it, share it, and let me know!
- Bluesky
- Website https://ashleyhindle.com
All versions of whisp with dependencies
ext-pcntl Version *
ext-sodium Version *
ext-ffi Version *
ext-mbstring Version *
psr/log Version ^3.0
phpseclib/phpseclib Version ^3.0