d
d copied to clipboard
An git based, infrastructure-agnostic deploy tool for node.js
SYNOPSIS
An git based, infrastructure-agnostic deploy tool for #node.js
DESIGN
No single end point
A single API endpoint is a single point of failure. A deployment tool should maintain a cache of API endpoints that can be tried in the case of connection failure.
Differential deployments
Only the delta of the code should be deployed. This significantly improves user experience while reducing the footprint on the network.
Always an interactive REPL
Uses public key infrastructure/cryptography
Binary differential deployments (only deploy your changes)
Usage
The program is always run in interactive REPL mode.
Interactive mode (REPL)
Push code to the cloud
Commands push [tag]
,
Description Attempt to push the code in the current project to the deployment target(s). You may optionally specify a remote for the code push.
Pull code from the cloud
Commands pull [tag]
,
Description Pull the latest code from for the app. If no version is specified it will pull the latest. If a version is specified, it can be either the sha1 hash for a particular commit or a git tag.
Stop, Restart or Start code
Commands d start [version]
, d stop [all]
, d restart
Description Send the application a start, stop or restart signal.
These commands are short hand for d sig start
, d sig stop
and d sig restart
.
-
To specify a version of your app to start, supply the git
sha1
hash ortag
. -
To stop all of the apps that you have deployed, specify
all
in addition tostop
.
Send an arbitrary signal to the running code
Commands d sig <signal>
, sig <signal>
Description Send an arbitrary signal to an application.
Environment variables
Commands env *[name]* *[value]*
, env *[name]* *[value]*
Description Environment variables are settings that are applied to the shell environment when a deployment is made. This command will get, set, clear and delete environmental variables.
-
To get all of the variables, omit
name
andvalue
and all of the currently set variables will be returned. If--json
or-j
is specified, all of the results will be returned as rawJSON
format. -
To set a variable, supply both the
name
and thevalue
. If a value contains whitespace, remember to quote it. -
To get a variable, supply only the
name
of the variable. This will print only the name and value of that variable. -
To clear an environment variable for an app, supply only the
name
of the variable and specify-c
. For example:d env <name> -c
. -
To delete environment variable for an app, supply only the
name
of the variable and specify-d
. For example:d env <name> -d
.
Logs
Commands tail [file]
Description Application logging comes in two flavors. When running this program in interactive mode, you will have real-time logs over tcp. When this program is not running in interactive mode, you will see only a historic view. This historic view is updated when possible and does not represent the most current activity of the application.