iperamuna/laravel-remote-commands

Remote SSH Access for the Laravel Framework via phpseclib.

Maintainers

Package info

github.com/iperamuna/laravel-remote-commands

pkg:composer/iperamuna/laravel-remote-commands

Statistics

Installs: 17

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.0.4 2026-03-07 05:33 UTC

This package is auto-updated.

Last update: 2026-03-07 05:33:26 UTC


README

Latest Version on Packagist Total Downloads License

✨ A lightweight Laravel package that enables executing commands on remote servers over SSH using phpseclib. Designed for Laravel developers who need a simple and secure way to run remote commands — no file transfers, just command execution.

📦 Installation

composer require iperamuna/laravel-remote-commands

Configuration

Publish the configuration file:

php artisan vendor:publish --tag="remote-commands-config"

Configure your servers in config/remote-commands.php:

'servers' => [
    'production' => [
        'host' => '1.2.3.4',
        'port' => 22,
        'username' => 'deploy',
        'auth_type' => 'key', // 'password' or 'key'
        'password' => '',
        'key' => '/path/to/id_rsa', // Path to public / private key file
        'keytext' => '', // OR direct content of public / private key
        'passphrase' => '', // Optional key passphrase
    ],
],

Usage

Using the Facade

use LaravelRemoteCommands\Facades\RemoteCommand;

// Run commands and get output as an array
$output = RemoteCommand::into('production')->run([
    'cd /var/www/html',
    'ls -la',
]);

foreach ($output as $line) {
    echo $line . PHP_EOL;
}

// Or stream output via callback
RemoteCommand::into('production')->run([
    'git pull origin main',
], function($line) {
    Log::info("Deployment: " . $line);
});

Diagnostics

You can test your connectivity and prompt detection using the built-in diagnostic command:

php artisan remote:diagnostic {server_name}

📜 License

This package is open-source software licensed under the MIT license.

🙋‍♀️ Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.

📣 Credits

Made with ❤️ by Indunil Peramuna
Built for Laravel developers who want to run commands on remote servers.