Prerequisites
Complete these before deploying:- Create an application, so an
infrastructure.tsexists in your project - Authenticate with Fjall by running
fjall login, or setFJALL_API_KEYfor CI/CD - Connect an AWS account by running
fjall connect
fjall deploy enforces both gates before it touches AWS. An unauthenticated run stops with Authentication required. Run 'fjall login' first.
Deploy your application
Run this from your project root:api with your application name. The one command builds the container image, synthesises infrastructure, and applies the change.
The positional argument is always an application name. Tier deploys are separate noun-verb commands: fjall org deploy, fjall platform deploy and fjall account deploy. Passing a tier word to fjall deploy stops before authentication with a teaching error, so nothing is validated and nothing is deployed.
What happens during a deploy
At a TTY, Fjall renders a step checklist, streams live CloudFormation events, and stops for approval before applying changes.Step checklist
Steps that do not apply to your application drop out. An application with no CDN never shows the CDN step.Pre-deployment checklist
A streaming checklist runs before synthesis. Steps that do not apply drop out.Live progress
Each stack streams its own CloudFormation resource events in an operation box, with a progress bar and a per-resource table. The Docker build, the ECS rollout, and OpenNext builds get their own boxes. When storage, messaging, and database deploy concurrently, a switchable parallel panel replaces the single box. If nothing changed since the last deploy, the run ends before any gate withAlready up to date — no changes since last deploy.
Confirmations
Up to four prompts can appear, in this order.The change plan
The approval gate is engaged by default at a TTY, on any deploy that has changes.+ create, ~ update, ± replace, - delete, > read.
Rejecting the plan prints ⊘ Plan rejected — deployment cancelled, nothing changed. Declining a destructive consent prints ⊘ Destructive changes declined — deployment withheld, nothing was applied.
Non-interactive and CI runs show no plan unless you pass --plan or --require-approval. See Destructive Changes for the consent ceremony.
Deployment options
Skip the prompts
Infrastructure only
Apply infrastructure changes without rebuilding the container:Code only
Rebuild and redeploy the container without touching infrastructure:Skip the build
Reuse an already-pushed image, paired with--deploy-only:
Roll forward or back to a known image
Deploy an existing image tag. This skips the build and implies--deploy-only:
Fjall image tags are content-addressed:
<service>-sha-<12 hex characters of the image digest>. List the tags an application has shipped with fjall releases api, or read them from its ECR repository. Tags like
v1.4.2 are not produced by Fjall builds and will not resolve.Select the build-arg tier
-e, --environment <env> chooses which .env.<stage> file supplies Docker build args:
Verbose output
Common deploy options
fjall deploy carries the full flag surface, including the approval-token, destructive-consent, build-arg, and build-secret families.
Cascade control belongs to the organisation tier.
--no-cascade is registered
only on fjall org deploy, never on an
application deploy.After deployment
Inspect your resources
List the resources declared in the application’sinfrastructure.ts:
fjall list reads the file on disk, not CloudFormation. Two commands give the wider view: fjall status prints a name and health table of every application plus a summary line, and fjall apps lists the applications in your organisation.
View logs
Fjall never writes~/.aws/credentials, so run AWS commands through the CLI’s minted credentials:
Track costs
Update an application
Roll back
A rollback re-registers each service against images that already exist in ECR. Nothing is rebuilt and infrastructure is not re-synthesised.fjall deploy api --image-tag <tag>. See releases and rollback for the full behaviour.
Troubleshooting
When a deploy fails, CloudFormation rolls the stack back and names the failing resource.- Read the error message. It names the resource that failed.
- Re-run with
--verbosefor detailed logs. - Fix the underlying issue and redeploy.
Common issues
The deployment error reference covers the classified CloudFormation and ECS failures in detail.
Next Steps
A first deployment typically takes 10 to 15 minutes while AWS provisions
resources. Later updates are faster.
Add Resources
Extend your application with databases, storage, and more
Deploy Reference
The complete
fjall deploy flag surface and subcommandsDestructive Changes
Understand the consent ceremony before a replace or destroy
Set Up CI/CD
Automate deployments from your pipeline