Skip to content
master
Switch branches/tags
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Swiff

npm version

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

Getting started

  1. Install Swiff globally with npm:
    npm install --global swiff

  2. 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
    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

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
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
Created by @benrogerson and Sam Stevens

Swiff has been agency battletested by Simple who specialise in Craft CMS websites