Automated infrastructure creation and deployment tool.
Shift focuses on creating your infrastructure with ease and automating your deployments.
$ curl -sf https://raw.githubusercontent.com/leapfrogtechnology/shift/master/install.sh | sudo sh
$ shift-cli
Before using shift, you have to provide your AWS credentials. Also, make sure you have the correct access for your credentials.
Simply create ~/.aws/credentials
file for storing AWS credentials.
Example:
[example-profile]
aws_access_key_id = xxxxxx
aws_secret_access_key = xxxxxx
To know more about AWS configurations, view Configuring the AWS CLI
Go to your project directory and run setup
command to initiate the setup process.
$ shift-cli setup
- Enter the name of your project
- Choose the platform
- Choose your AWS profile that was setup earlier.
- Choose the AWS Region where you want your infrastructure to be created.
- Choose the type of deployment you want.
- Name your environment.
- If Backend:
- Enter your application port
- Enter healthcheck path
- Enter dockerfile path
- Enter Slack webhook URL
Example:
Project Name: shiftbeta
Choose Cloud Provider: AWS
Choose AWS profile: default
Region: US East (North Virginia)
Choose Deployment Type: Backend
Environment Name: dev
Application port: 8080
Heathcheck Path: /api
Dockerfile Path: ./
Slack Webhook URL: https://webhook.slack.com
shift.json
file will be created in your project directory like below.
{
"name": "shiftbeta",
"platform": "AWS",
"profile": "default",
"region": "us-east-1",
"type": "Backend",
"port": "80",
"dockerFilePath": "./",
"healthCheckPath": "/",
"env": {
"dev": {
"cluster": "shiftbeta-dev",
"service": "shiftbeta-dev",
"image": "009409476372.dkr.ecr.us-east-1.amazonaws.com/shiftbeta/dev-backend",
"taskDefinition": "shiftbeta-dev"
}
}
}
If you do not want a project-specific config file, you can skip the above step.
$ shift-cli deploy [env]
$ shift-cli deploy dev
Here dev
is the environment you specified in shif.json
.
$ shift-cli destroy [env]
Destroy infrastracture.
Instead of setting up a ~/.aws/credentials
file. You can also use the following environment variables to set up your AWS credentials.
Variable | Description |
---|---|
AWS_ACCESS_KEY_ID | Your AWS access key |
AWS_SECRET_ACCESS_KEY | Your AWS secret key |
AWS_REGION | AWS region where you added your secret |