Giter VIP home page Giter VIP logo

ftp-deploy's Introduction

ftp deploy ๐Ÿš€

Syncs a local folder with a remote folder over ftp.

After the initial sync only differences are synced, making deployments super fast!

Latest Stable Version NPM Downloads


How to Run

Option 1 - Run via command line

  • Install the npm package using npm install @samkirkland/ftp-deploy --only=dev

  • Run via command line ftp-deploy --server ftp.samkirkland.com --username [email protected] --password \"CrazyUniquePassword&%123\"

  • Or you can add a script to make deployments easier

  • Add a new key to your package.json file under scripts section. See example below.

  • You can run the script using the following command npm run deploy (run this in the folder that has the package.json file)

Example of package.json:

{
  "scripts": {
    "deploy": "ftp-deploy --server ftp.samkirkland.com --username [email protected] --password \"CrazyUniquePassword&%123\"",
  },
}

Option 2 - Run programmatically

  • Install the npm package using npm install @samkirkland/ftp-deploy --only=dev
  • Import the code and use it in your code

Example of myCustomDeployment.js:

import { deploy, excludeDefaults } from "@samkirkland/ftp-deploy";

async function deployMyCode() {
  console.log("๐Ÿšš Deploy started");
  await deploy({
    server: "ftp.samkirkland.com",
    username: "[email protected]",
    password: `CrazyUniquePassword&%123`, // note: I'm using backticks here ` so I don't have to escape quotes
    exclude: [...excludeDefaults, "dontDeployThisFolder/**"] // excludeDefaults will exclude .git files and node_modules
  });
  console.log("๐Ÿš€ Deploy done!");
}

deployMyCode();

Automatically Deploying

If you use github as source control you can automatically re-deploy your site on every git commit. Read more


Settings

To list all commands with examples simply run ftp-deploy without any options.

Key Name Required Example Default Value Description
--server Yes ftp.samkirkland.com Deployment destination server
--username Yes [email protected] ftp username
--password Yes CrazyUniquePassword&%123 ftp password, be sure to escape quotes and spaces
--port No 990 21 Server port to connect to (read your web hosts docs)
--protocol No ftps ftp ftp: provides no encryption, ftps: full encryption newest standard (aka "explicit" ftps), ftps-legacy: full encryption legacy standard (aka "implicit" ftps)
--local-dir No ./myFolderToPublish/ ./ Path to upload to on the server, must end with trailing slash /
--server-dir No ftp.samkirkland.com/ ./ Folder to upload from, must end with trailing slash /
--state-name No folder/.sync-state.json .ftp-deploy-sync-state.json ftp-deploy uses this file to track what's been deployed already, so only differences can be published. If you don't like the name or location you can customize it
--dry-run No true false Prints which modifications will be made with current config options, but doesn't actually make any changes
--dangerous-clean-slate No true false Deletes ALL contents of server-dir, even items marked as --exclude argument
--exclude No nuclearLaunchCodes.txt **/.git* **/.git*/** **/node_modules/** An array of glob patterns, these files will not be included in the publish/delete process
--log-level No info info minimal: only important info, standard: important info and basic file changes, verbose: print everything the script is doing
--security No strict loose strict: Reject any connection which is not authorized with the list of supplied CAs. loose: Allow connection even when the domain is not in certificate

ftp-deploy's People

Contributors

ad-kemp avatar adripo avatar kangangga avatar samkirkland avatar treetrum avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.