swiff-4 v8.2.8
Swiff 2024
Note: Currently in Development (Will merge to Swiff after approval)
Swiff streamlines common SSH tasks during website/app development, saving you valuable time.
Key Features
🚀 Folder Synchronization
Keep folders in sync between servers effortlessly.
💫 Database Management
Manage databases between servers with automatic backups.
🎩 Composer File Management
Transfer composer files between servers with automatic backups.
💻 Remote Terminal Connection
Launch an SSH session directly into the remote site/app folder.
💻 Logger
Access all logs with swiff.log
.
Getting Started
Install Swiff globally with npm:
npm install --global swiff-4@latest
Run Swiff:
swiff-4
Additional Features
Custom SSH Identity: Swiff uses your identity located at
/Users/[currentUser]/.ssh/id_rsa
. Specify a custom SSH key path in your.env
file with:SWIFF_CUSTOM_KEY="/Users/[your-user]/.ssh/[key-filename]"
Gzipped Backups: Automatically back up and gzip your files and databases whenever they change.
Disable Specific Tasks: Specify tasks to disable via a config setting.
Dotenv Setup: Required
.env
# The environment currently running in ('dev', 'staging', 'production', etc.)
ENVIRONMENT="dev"
SECURITY_KEY=""
DB_USER="db"
DB_PASSWORD="db"
DB_DATABASE="db"
DB_PORT="3306"
DB_DRIVER="mysql"
DB_SERVER="localhost"
DB_TABLE_PREFIX="craft"
Also this can be prefixed in swiff.config.js
env: {
prefix: "CRAFT_",
},
Folder Sync Enhancements: New features include
see diff
and validation sync withgit
.Enhanced Logger:
swiff.log
includes max size settings to manage log file size:logging: { enabled: true, dir: '', // Default root: "./storage/logs/" maxSize: 10 * 1024 * 1024, // Recommended 10MB max log file size },
Multi-Environment Support: Must have
defaultEnvironment
inenvironments
object.defaultEnvironment: "staging", environments: { staging: { user: "", host: "", appPath: "", port: 22, }, production: { user: "", host: "", appPath: "", port: 22, }, },
Requirements
Swiff requires Node.js LTS version (16.0.0+).
Place the following in swiff.config.js
at the root of your application:
export default {
defaultEnvironment: "staging",
logging: {
enabled: true,
// dir: '', // Default root: "./storage/logs/"
maxSize: 10 * 1024 * 1024, // Recommended 10MB max log file size
},
environments: {
staging: {
user: "",
host: "",
appPath: "",
port: 22,
},
production: {
user: "",
host: "",
appPath: "",
port: 22,
},
},
local: {
ddev: true,
},
env: {
prefix: null, // Example: "CRAFT_" for projects above version 4
},
pushFolders: [
// { path: "config", exclude: "/project/*" },
// 'templates',
// 'public/dist'
],
pullFolders: [
// 'public/assets/volumes'
],
disabled: ["databasePush"],
};
Swiff works with MySQL databases and supports ddev
(requires local.ddev = true
).
Technology
- Node.js - JavaScript runtime built on Chrome's V8 engine
- Ink 2 - React for interactive command-line apps
- Babel - JavaScript transpiler
- Rollup - JavaScript module bundler
- Prettier - Code formatter
- Pino - Logger
Credits
- Sounds by Emoji Sounds
- Created by @benrogerson and Sam Stevens
- Updated & Maintained by @suprimgolay
- Swiff has been agency battle-tested by Simple, specializing in Craft CMS websites.
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago