Your First Project
On a high-level, the steps you'll need to follow in order to deploy a project for the first time are:
- Create an account at Flightcontrol
- Create an account at AWS (if you don't already have one)
- Link your AWS account to Flightcontrol
- Optional: Authorize the Flightcontrol Github App to access your chosen repositories, public or private. This is needed if you want to deploy your own code from your Github repository.
- Create a Flightcontrol project from our Dashboard
It might be useful to understand the different terms and the architecture we use:
Project: It's the top level element of our architecture. It contains the configuration for the different
Environments and it is associated with a Github repository. It can only be created in the Flightcontrol Dashboard.
Environment: The model that contains 1 or more
Service. It can be configured as a regular (long-lived) environment or as a preview environment (short-lived, spinned off when a pull request is opened).
Services: The AWS service that you want to be contained within a given
Deployment: Each deploy of an
Environment will generate a
Deployment that attempts to deploy all child
Services. In the very first deployment, Flightcontrol will also configure the required AWS environment resources, depending on what is required by each service.
At the moment, we support the following services:
- Web server using Fargate
- Workers using Fargate
- Database using RDS
- Static websites using S3 and Cloudfront
- Redis using ElastiCache
Read more about each type here.
When you create the project in the Flightcontrol Dashboard, you can choose to configure it using (a) our UI or (b) by providing a
flightcontrol.json file, which needs to exist in the codebase you want to deploy.
During the project creation in the Dashboard, you'll select which repository to use as well as which type of configuration you prefer.
In the configuration, among other things, you'll configure an
Environment and which
Services you want to deploy. This configuration also includes how you want your changes to sync with Flightcontrol, either manually or on changes pushed.
See the config page for more info.