SignalSalad infrastructure is provider-isolated.
Use these folders as the only Terraform entrypoints.
infrastructure/tencentinfrastructure/awsinfrastructure/azure
- Enter provider folder.
cd infrastructure/tencent- Export credentials.
export TENCENTCLOUD_SECRET_ID="..."
export TENCENTCLOUD_SECRET_KEY="..."- Initialize, plan, apply.
terraform init
terraform plan
terraform apply- Optional: fetch the shared private key output.
terraform output -raw ssh_private_key- Tear down when needed.
terraform destroyTerraform deploys can be triggered by pushing one of these tags:
aws-deploy-> provisions all AWS infra ininfrastructure/aws, including webapp S3 bucket + CloudFront distributionaws-webapp-deploybuildswebapp/dist, uploads to AWS S3, and invalidates CloudFrontaws-docker-deploybuilds signaling/media Docker images and pushes them to AWS ECRaws-full-deployruns all AWS deploy workflows in order: Terraform -> Docker images -> webapp assetstencent-deploy-> runs Terraform ininfrastructure/tencentazure-deploy-> runs Terraform ininfrastructure/azure
Required GitHub secrets for AWS webapp publish:
AWS_WEBAPP_ASSETS_BUCKETAWS_WEBAPP_CDN_DISTRIBUTION_ID- Terraform AWS deploy workflow uses
${{ github.token }}withactions: writepermission to update the two secrets above.
Required GitHub secrets for AWS Docker publish:
AWS_ECR_SIGNALING_REPOSITORYAWS_ECR_MEDIA_REPOSITORY- Terraform AWS deploy workflow uses
${{ github.token }}withactions: writepermission to update the two secrets above.
Workflow files:
.github/workflows/aws-terraform-provision.yml.github/workflows/aws-webapp-cdn-publish.yml.github/workflows/aws-docker-ecr-publish.yml.github/workflows/aws-deploy.yml.github/workflows/terraform-tencent-deploy.yml.github/workflows/terraform-azure-deploy.yml
Example tag push:
git tag aws-deploy
git push origin aws-deploy
git tag aws-webapp-deploy
git push origin aws-webapp-deploy
git tag aws-docker-deploy
git push origin aws-docker-deploy
git tag aws-full-deploy
git push origin aws-full-deploy