Skip to main content

API Deployment

Local Deployment (Preferred)

Deploy locally for speed, push to main to true everything up.

Prerequisites

# Start Colima (lightweight Docker daemon)
colima start --cpu 2 --memory 4

# Login to ECR
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 255982108053.dkr.ecr.us-east-1.amazonaws.com

Build and Deploy

cd statux-api

# Statux Pages
docker build -f Dockerfile.statuspages -t 255982108053.dkr.ecr.us-east-1.amazonaws.com/statux-api:latest .
docker push 255982108053.dkr.ecr.us-east-1.amazonaws.com/statux-api:latest
aws autoscaling start-instance-refresh --auto-scaling-group-name statux-prod-asg-api --preferences '{"MinHealthyPercentage":50,"InstanceWarmup":120}'

# Alerting
docker build -f Dockerfile.alerting -t 255982108053.dkr.ecr.us-east-1.amazonaws.com/statux-alerts-api:latest .
docker push 255982108053.dkr.ecr.us-east-1.amazonaws.com/statux-alerts-api:latest
aws autoscaling start-instance-refresh --auto-scaling-group-name statux-prod-asg-alerts-api --preferences '{"MinHealthyPercentage":50,"InstanceWarmup":120}'

# Synthetics
docker build -f Dockerfile.synthetics -t 255982108053.dkr.ecr.us-east-1.amazonaws.com/statux-synthetics-api:latest .
docker push 255982108053.dkr.ecr.us-east-1.amazonaws.com/statux-synthetics-api:latest
aws autoscaling start-instance-refresh --auto-scaling-group-name statux-prod-asg-synthetics-api --preferences '{"MinHealthyPercentage":50,"InstanceWarmup":120}'

Reference

AppDockerfileECR RepoASG
Statux PagesDockerfile.statuspagesstatux-apistatux-prod-asg-api
AlertingDockerfile.alertingstatux-alerts-apistatux-prod-asg-alerts-api
SyntheticsDockerfile.syntheticsstatux-synthetics-apistatux-prod-asg-synthetics-api

CodeBuild (Push to Main)

Push to main triggers CodeBuild automatically:

AppProjectTrigger Path
Statux Pagesstatux-prod-codebuild-api-statuspagesapps/statuspages/**, libs/**
Alertingstatux-prod-codebuild-api-alertingapps/alerting/**, libs/**
Syntheticsstatux-prod-codebuild-api-syntheticsapps/synthetics/**, libs/**

Monitoring Deployment

# Watch ASG refresh status
aws autoscaling describe-instance-refreshes \
--auto-scaling-group-name statux-prod-asg-api \
--query 'InstanceRefreshes[0]'