Skip to content

Conversation

@alwoodm
Copy link
Owner

@alwoodm alwoodm commented Nov 28, 2025

Description

This PR finalizes the application for release. It introduces a robust CI/CD pipeline for automated releases and Homebrew formula updates, enhances security with dynamic key generation, and polishes the CLI experience with a default command shortcut and a dedicated user deletion command. Comprehensive documentation has also been added.

Changes

🚀 Release & Infrastructure

  • Automated Releases: Added .github/workflows/release.yml to build the PHAR, create GitHub Releases, and automatically update the Homebrew formula in alwoodm/homebrew-tap.
  • Dynamic Security: Implemented automatic APP_KEY generation on the first run of the PHAR, ensuring unique encryption keys for every installation (~/.myssh/.key).
  • Zero-Config Setup: The application now automatically creates its SQLite database and runs migrations on boot if they don't exist.

✨ Features & Polish

  • Homebrew Support: Updated documentation to support installation via brew tap alwoodm/tap.
  • user:delete Command: Added a dedicated command to remove users from hosts, improving CLI consistency.
  • Default Command Shortcut: You can now connect simply by typing myssh <alias>, skipping the connect keyword.
  • Documentation: Added a professional README.md and CHANGELOG.md.

🐛 Fixes & Maintenance

  • CI/CD: Updated PHP version to 8.3 and fixed test workflows.
  • Testing: Refactored tests to use Prompt::fake() and RefreshDatabase for reliability.
  • Cleanup: Removed the manual app:update command in favor of Homebrew/manual updates to avoid configuration issues.

How to Test

  1. Build the App: Run php myssh app:build myssh.
  2. Test Shortcut: Run ./builds/myssh <alias> and verify it connects.
  3. Test User Deletion: Run ./builds/myssh user:delete <host> <user>.
  4. Verify Security: Check that ~/.myssh/.key is created after the first run.

@alwoodm alwoodm merged commit afa9345 into main Nov 28, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants