Swiff saves you time with common SSH tasks during the development of websites/apps
๐ Folder push and pull
Keep folders in sync between servers
๐ซ Database push and pull
Manage the database between servers (auto backup)
๐ฉ Composer file push and pull
Move composer files between servers (auto backup)
๐ป Remote terminal connection
Launch a SSH session directly into the remote site/app folder
-
Install Swiff globally with npm:
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
- Custom SSH identity: Swiff will attempt to use your identity located at:
/Users/[currentUser]/.ssh/id_rsa
You can specify a custom SSH key path in your .env file with:
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
Swiff requires MySQL to use the database features.
We recommend using MariaDB, an enhanced, drop-in replacement for MySQL.
brew install [email protected]
(latest as of April 2019)
For the Database & Composer tasks, a PEM format SSH key is required
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
- 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
Sounds by Emoji Sounds
Created by @benrogerson and Sam Stevens
Swiff has been agency battletested by Simple who specialise in Craft CMS websites