Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
NOTE:
This is very much a draft PR! Creating for visibility, but there is a lot more work required!
Summary
This pull request introduces a new abstraction for server connections, enabling seamless support for both local and remote servers. It adds a new command for creating local servers, introduces a unified
ServerConnectioncontract, and implements the local connection logic via Unix sockets. TheSSHfacade is updated to automatically route commands to either SSH or the new local socket implementation based on the server type.Local server support and connection abstraction:
CreateLocalServerCommandto create and configure local servers with pre-installed services, firewall rules, and user/project assignment. (app/Console/Commands/CreateLocalServerCommand.php)ServerConnectioninterface to define a unified contract for server connection operations, covering initialization, command execution, file upload/download, and logging. (app/Contracts/ServerConnection.php)AbstractServerConnectionto handle common connection logic, user switching, and logging for all server connection types. (app/Helpers/AbstractServerConnection.php)LocalSocket, a concrete implementation ofServerConnectionfor local servers, communicating via a Unix socket and supporting command execution, file transfer, and service management. (app/Helpers/LocalSocket.php)SSH facade and routing improvements:
SSHfacade to route server operations toLocalSocketfor local servers and to SSH for remote servers, including support for fakes in testing. (app/Facades/SSH.php)