Production deployment¶
Production URLs¶
| Resource | URL |
|---|---|
| Landing page | https://d35b4jhpypc315.cloudfront.net/ |
| App | https://d35b4jhpypc315.cloudfront.net/app |
| Documentation | https://d35b4jhpypc315.cloudfront.net/docs/index.html |
The docs use .html paths because the frontend bucket is a private S3 REST
origin. Use the exact documentation URL above.
AWS boundary¶
The deployment uses:
- AWS region
us-east-1; - AWS CLI profile
admin-azhar-freetrial; - private S3 frontend bucket;
- CloudFront Origin Access Control;
- API Gateway HTTP API;
- Python FastAPI Lambda;
- private versioned S3 artifact bucket;
- Secrets Manager for server values.
The browser receives no AWS credential.
Publish the frontend and docs¶
The publish script builds the frontend, builds the strict MkDocs site, copies both outputs to the private frontend bucket, and invalidates CloudFront.
AWS_PROFILE=admin-azhar-freetrial \
AWS_REGION=us-east-1 \
ORION_STACK_NAME=orion-production \
bash infra/deploy/scripts/publish-frontend.sh
The docs are copied under the docs/ prefix. The script does not delete old
S3 objects implicitly.
Publish only a local docs build¶
Build first:
Inspect the output with:
Open http://127.0.0.1:8001/.
Deploy the backend¶
Use the infrastructure runbook for a Lambda or CloudFormation change:
Do not put a secret in a CloudFormation parameter or frontend variable.
Verify after publish¶
curl -fsSI https://d35b4jhpypc315.cloudfront.net/docs/index.html
curl -fsS https://d35b4jhpypc315.cloudfront.net/docs/index.html | head
Then open the docs in the in-app Browser. Check the home page, search, a second-level page, and the app link.