Download the PHP package zowesoft/web-terminal without Composer
On this page you can find all versions of the php package zowesoft/web-terminal. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download zowesoft/web-terminal
More information about zowesoft/web-terminal
Files in zowesoft/web-terminal
Package web-terminal
Short Description A secure web-based terminal for Laravel applications â run Artisan, Git, Composer and shell commands from the browser.
License MIT
Homepage https://github.com/Zowesoft/web-terminal
Informations about the package web-terminal
đĨī¸ Laravel Web Terminal
A secure, browser-based terminal for Laravel applications. Run Artisan, Git, Composer and shell commands directly from your browser â perfect for shared hosting environments where SSH access is unavailable.
Features
- đ Dual security â requires both Laravel auth session AND a personal terminal token
- âī¸ Artisan support â run any Artisan command natively via
Artisan::call() - đŋ Git support â
git pull,git status,git logand more - đĻ Composer support â
composer install,dump-autoload, etc. - đĄī¸ Command blacklist â blocks dangerous commands like
rm -rf / - đšī¸ Command history â navigate previous commands with arrow keys
- âī¸ Customisable â publish config, views and migrations to override anything
- đ Compatible with Laravel 9, 10, 11, 12 and 13
Requirements
- PHP 8.1+
- Laravel 9.x / 10.x / 11.x / 12.x / 13.x
proc_openorshell_execenabled on your server (for shell commands)
Note: Artisan commands work even if
shell_execis disabled, since they run in-process.
Installation
1. Install via Composer
2. Publish and run the migration
This adds two columns to your users table:
is_adminâ boolean flag to grant terminal accessterminal_tokenâ the secret token required to unlock the terminal
3. Grant yourself access
4. Visit the terminal
Log in with your Laravel account, paste your token when prompted, and you're in.
Publishing
You can publish various parts of the package for customisation:
Configuration
Publish the config file to customise behaviour:
Customising the UI
Publish the views to override the terminal interface:
This copies the view to resources/views/vendor/web-terminal/index.blade.php where you can freely edit it.
Environment Variables
You can configure the package via .env without publishing the config:
Security
This package uses two independent security layers:
- Laravel auth â user must be logged in
- Admin flag â
is_adminmust betrueon the user record - Terminal token â a per-user secret sent as
X-Terminal-Tokenon every request
Recommendations:
- Use a strong, unique token per user (the
bin2hex(random_bytes(32))approach gives 64 hex chars) - Add IP allowlisting via
.htaccessor your server config for extra protection - Consider disabling the terminal route in production when not in use via config
Available Commands
| Category | Examples |
|---|---|
| Artisan | artisan migrate --force, artisan cache:clear, artisan optimize |
| Git | git pull origin main, git status, git log --oneline -10 |
| Composer | composer install --no-dev, composer dump-autoload |
| PHP/Shell | php -v, ls -la, pwd |
| Built-in | help, clear |
Troubleshooting
Shell commands return no output
Your host likely has shell_exec / proc_open disabled. Artisan commands will still work. Check with:
git or composer not found
Add the correct binary paths to WEB_TERMINAL_PATH in your .env. Find the path with:
403 on every request
Make sure you have run the migration, set is_admin = true on your user, and are sending the correct token.
License
MIT â see LICENSE for details.
All versions of web-terminal with dependencies
illuminate/support Version ^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/routing Version ^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/http Version ^9.0|^10.0|^11.0|^12.0|^13.0
illuminate/database Version ^9.0|^10.0|^11.0|^12.0|^13.0
symfony/process Version ^6.0|^7.0