swiff-4
v4.0.4
Published
Swiff saves you time with common SSH tasks during the development of websites/apps
Downloads
1,759
Maintainers
Readme
Swiff 2024
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
Install Swiff globally with npm:
npm install --global swiff-4
Run
swiff-4
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
This plugin requires an LTS Node version (v16.0.0+).
filename: swiff.config.js
add to root of your application.
/**
* Swiff Project Configuration
* Head to 'https://github.com/simple-integrated-marketing/swiff' for further information.
*/
// Remote SSH server details
export default {
// set Default Environment staging, production, etc !make sure server config consits with environment name
environment: "staging",
server: {
staging: {
// The SSH login username
user: "",
// The IP/hostname of the remote server
// host: '100.100.100.100',
host: "",
// The working directory of the remote app folder
// appPath: '/srv/users/[user]/apps/[app]',
appPath: "",
// The SSH port to connect on (22 is the SSH default)
port: 22,
},
},
local: {
ddev: true,
},
// Folders to upload and sync with the server
pushFolders: [
// 'templates',
// 'config',
// 'public/assets/build'
],
// Folders to pull new or changed files from
pullFolders: [
// 'public/assets/volumes'
],
disabled: ["databasePush"],
};
Works with mysql database and ddev ( requires local.ddev = true)
Technology
- Node.js - A JavaScript runtime built on Chrome's V8 JavaScript engine
- Ink 2 - React for interactive command-line apps
- Babel - JavaScript transpiling
- Rollup - JavaScript module bundler
- Prettier - Code cleaning
Credits
Sounds by Emoji Sounds Created by @benrogerson and Sam Stevens Updated & Maintained by @suprim12
Swiff has been agency battletested by Simple who specialise in Craft CMS websites