Getting started
Furnace will deploy resources outside of the free tier on your cloud platform. We are not responsible for any costs incurred
Our aim is to have you up and running in less than 5 minutes. You'll need to meet the following prerequisites (see current limitations):
Further prerequisites are needed depending on which platform you will be deploying to.
- AWS CLI and a configured profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)
- A GCP Service Account file setup locally (https://cloud.google.com/docs/authentication/getting-started)
To list projects already available in GCP if you have them run
gcloud projects list
from the gcloud CLITo find your subscription ID run
az account show --query id -o tsv
from the Azure CLIThe process starts with installing the Furnace CLI and running
furnace ignite
npm install @project-furnace/cli -g
furnace ignite
You'll be asked a series of questions relating to your environment. After filling in the questions Furnace will start creating various resources in your chosen platform. These resources will consist of a deployment container, API endpoints, serverless functions, credentials and keys, storage, and message queues. For a more indepth look at what is actually being created please see the relevant platform specific documentation.
This may take a few minutes to complete but when it's done you will be notified via the CLI.
Once this command has completed you're ready to create a new stack.
furnace new my-stack
cd my-stack
Again you'll be prompted to answer a series of questions about your Stack. Furnace will then initialise a few more resources required for your Stack including GitHub repositories and webhooks. You'll now have a new repository created that you can start to build on. You can learn more about working with Furnace Stacks with the 5 Minute Walkthrough.
The
stack.yaml
contains a list of environments, by default you have dev
, staging
, production
. Once you're ready deploy your first stack, we do so using a standard git
flow.git add .
git commit -am "initial commit"
git push origin master
This pushes to the first environment defined in your Stack, you can see the deployment status in
environments
in the Stack repository in GitHub or using the furnace status
command inside the Stack directory.If something goes wrong or a deployment doesn't complete please see the platform specific page on where to find the relevant logs.
Once you're happy that your Stack is functioning how you expected in your initial environment you can
promote
it to an upstream environment eventually towards its final/production environment. For example, keeping with the default environments, to promote the dev
environment to staging
you would simply:furnace promote dev
furnace ignite
can also be run with the following command line arguments:These args can be used for any target platform
Command | Full | Alias | Type | Default Value | Description |
Platform selection | --platform | -p | String | null | Which platform you will deploy to aws , azure or gcp |
Instance Name | --name | -i | String | null | The name to give your Furnace Instance |
Git Provider | --gitProvider | -g | String | null | Git provider being used (currently only supporting github ) |
Git Token | --gitToken | -t | String | null | Github access token |
Store Git Token | --storeGitHubToken | | Boolean | true | Whether to store the Github token in the config |
Location | --location | -l | String | null | Region deploying to. ie us-west-1 or uksouth |
These args are platform dependent:
Command | Full | Alias | Type | Default Value | Description |
Profile | --profile | -x | String | null | Local AWS Profile to use |
Access Key Id | --accessKeyId | -a | String | null | AWS API Access Key |
Secret Access Key | --secretAccessKey | -p | String | null | AWS API Access Secret |
Command | Full | Alias | Type | Default Value | Description |
Subscription ID | --subscriptionId | -s | String | null | Azure Subscription ID |
Command | Full | Alias | Type | Default Value | Description |
Project ID | --projectId | -j | String | null | GCP Project Name |
Last modified 4yr ago