SFTP deployment tool for frontend.
@bring-it/sftp
follows the principle of Convention over configuration, provide sftp like but lite version Command-Line Interface.
npm install @bring-it/sftp --global
bring-it [command] <options>
bring-it sftp [server]
SFTP deployment command
Positionals:
server URI as user@hostname[:port][/path]
or Host section in '.ssh/config'
Options:
-c, --cwd default: .bring-it
-k, --key example: .ssh/id_rsa [required]
When not match URI, bring-it
will treat it as a Host name in .ssh/config
.
It support .ssh/config like config with keys: Hostname, Port, User
, and a custom key: Path
bring-it sftp dev
# example: .ssh/config
# other Host will inherit from *
Host *
User root
# = [email protected]:22/mnt
Host dev
Hostname 192.168.1.200
Path /mnt
# = [email protected]:2222
Host docs
Hostname example.org
Port 2222
User deploy
Tips: this tool will read env.SSH_PRIVATE_KEY_PATH
when no --key
arguments passing.
bring-it pack [target...]
Pack files when support
Positionals:
target glob pattern of files or directories [array]
Options:
-n, --name archive output file name [default: "pack"]
For a little bit safer, @bring-it/sftp
will always upload files in order by: OTHER, SVG, STYLE, SCRIPT, HTML, XML/JSON/YAML
.
Not like the HTTP URL, in the SFTP URI, Port
is 22 by default.
Path
will point to /
by default, so don't forget set ChrootDirectory in /etc/ssh/sshd_config
to a safe path on server.
Atomic write is not support when ssh/sftp/scp
transfer, make your bundle support long-term caching, it will be safer when uploading.
To make sure unexpected file transferring won't happen.
Not safe, and typing special characters to the terminal might not easy.