@bring-it/cli
SFTP deployment tool for frontend.
@bring-it/cli
follows the principle of Convention over configuration, provide ssh like but lite version Command-Line Interface.
For a little bit safer, it will always upload files in order by: OTHER, SVG, STYLE, SCRIPT, HTML, XML/JSON/YAML
.
Installation
npm install @bring-it/cli --global
Usage
bring-it <server>
Usage: bring-it <server>
Positionals:
server URI as user@hostname[:port][/path]
or Host config name in '.ssh/config'
Options:
-c, --cwd default: .bring-it
-k, --key example: .ssh/id_rsa [required]
How to use the configuration file
When not match URI, bring-it
will treat it as a Host name in .ssh/config
.
bring-it
support .ssh/config like config with keys: Hostname, Port, User
, and a custom key: Path
bring-it dev
# example: .ssh/config
# other Host will inherit from *
Host *
User root
# = root@192.168.1.200/mnt
Host dev
Hostname 192.168.1.200
Path /mnt
# = deploy@example.org:2222
Host docs
Hostname example.org
Port 2222
User deploy
Tips
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.
FAQ
Why unauthorized transfer is not supported?
To make sure unexpected file transferring won't happen.
Why password
is not supported?
Not safe, and typing special characters to the terminal might not easy.