Awesome
Swiff
Swiff saves you time with common SSH tasks during the development of websites/apps
🚀 Folder push and pull<br> Keep folders in sync between servers
💫 Database push and pull<br> Manage the database between servers (auto backup)
🎩 Composer file push and pull<br> Move composer files between servers (auto backup)
💻 Remote terminal connection<br> Launch a SSH session directly into the remote site/app folder
Getting started
-
Install Swiff globally with npm:<br>
npm install --global swiff
-
Run
swiff
within a project folder to start the task interface
Run swiff --help
for a list of flags to run a specific task
Additional features
- Custom SSH identity: Swiff will attempt to use your identity located at:
/Users/[currentUser]/.ssh/id_rsa
<br> You can specify a custom SSH key path in your .env file with:<br>SWIFF_CUSTOM_KEY="/Users/[your-user]/.ssh/[key-filename]"
- Gzipped backups: Your files and database get backed up and gzipped whenever they change
- Disable specific tasks: Specify the tasks to disable with a config setting
Requirements
Swiff requires MySQL to use the database features.
We recommend using MariaDB, an enhanced, drop-in replacement for MySQL.
brew install mariadb@10.2
(latest as of April 2019)
For the Database & Composer tasks, a PEM format SSH key is required<br> Read about how to create and add a new SSH key
Running Windows or Linux? Swiff has been tested on macOS so issues are likely on other operating systems
Technology
- Node.js - A JavaScript runtime built on Chrome's V8 JavaScript engine
- Ink 2 - React for interactive command-line apps
- Babel - JavaScript transpiling
- Prettier - Code cleaning
Credits
Sounds by Emoji Sounds<br> Created by @benrogerson and Sam Stevens
Swiff has been agency battletested by Simple who specialise in Craft CMS websites