🚀 AWSUP - Lightning-Fast AWS Website Deployment
Production-grade CLI tool for deploying static websites to AWS using S3, CloudFront, Route53, and ACM. Zero configuration, maximum automation.
⚡ Quick Start
# Install globally
pip install awsup
# Deploy your website instantly
cd /path/to/your/website
awsup deploy yourdomain.com --website-path .
# Or deploy with default "Coming Soon" page
awsup deploy yourdomain.com
That's it! AWSUP handles all AWS infrastructure automatically.
✨ Features
- 🎯 Zero Config - Works out of the box
- 🔒 Secure by Default - SSL, OAC, encryption enabled
- ⚡ Lightning Fast - Global CloudFront CDN
- 🛡️ Production Ready - Comprehensive validation & error handling
- 🎨 Beautiful CLI - Rich terminal UI with progress bars
- 🔄 Smart State - Resumes interrupted deployments
- 🌍 Global - Works with any domain registrar
🎯 Common Workflows
React/Next.js:
npm run build
awsup deploy myapp.com --website-path ./build
Vue/Nuxt:
npm run generate
awsup deploy myapp.com --website-path ./dist
Static HTML:
awsup deploy myapp.com --website-path ./public
Jekyll/Hugo:
awsup deploy myapp.com --website-path ./_site
📋 All Commands
# Deploy website
awsup deploy yourdomain.com --website-path ./build
# Deploy subdomain (requires parent domain already deployed)
awsup deploy api.yourdomain.com --website-path ./api-docs
# Check status
awsup status yourdomain.com
# Clear CDN cache
awsup invalidate yourdomain.com
# Remove all AWS resources
awsup cleanup yourdomain.com
# Advanced: Deploy in phases
awsup phase1 yourdomain.com # DNS setup
awsup phase2 yourdomain.com # Full deployment
🌐 Subdomain Deployment
AWSUP automatically detects subdomains and reuses the parent domain's Route53 hosted zone.
Requirements:
- Parent domain (e.g.,
example.com) must be deployed first - Parent domain's Route53 hosted zone must exist in your AWS account
Example:
# First, deploy the parent domain
awsup deploy example.com --website-path ./main-site
# Then deploy subdomains (no NS configuration needed!)
awsup deploy api.example.com --website-path ./api-docs
awsup deploy blog.example.com --website-path ./blog
awsup deploy app.example.com --website-path ./app/build
Key Differences for Subdomains:
- ✅ Uses parent domain's hosted zone (no separate NS records)
- ✅ SSL certificate for subdomain only (no www subdomain)
- ✅ CloudFront distribution serves only the subdomain
- ✅ Faster deployment (no NS propagation wait)
- ✅ Cost-effective (single hosted zone for all subdomains)
Multiple Subdomains:
# Deploy as many subdomains as needed
awsup deploy staging.example.com --website-path ./staging
awsup deploy dev.example.com --website-path ./dev
awsup deploy docs.example.com --website-path ./docs
🔄 How It Works
- Route53 - Creates hosted zone and DNS records
- ACM - Requests and validates SSL certificate
- S3 - Creates secure bucket and uploads files
- CloudFront - Sets up global CDN with SSL
- DNS - Configures domain routing
📋 Prerequisites
- AWS Account with appropriate permissions
- Python 3.8+ installed
- AWS CLI configured with credentials
- Domain name (registered with any registrar)
Required AWS Permissions
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"route53:*",
"s3:*",
"cloudfront:*",
"acm:*",
"sts:GetCallerIdentity"
],
"Resource": "*"
}
]
}
🔧 Domain Configuration
After running awsup deploy, configure nameservers at your domain registrar:
Configure these nameservers at your registrar:
NS1: ns-123.awsdns-12.com
NS2: ns-456.awsdns-34.net
NS3: ns-789.awsdns-56.org
NS4: ns-012.awsdns-78.co.uk
Steps:
- Log into your domain registrar (GoDaddy, Namecheap, etc.)
- Go to DNS settings for your domain
- Change nameservers from default to custom
- Enter the NS records shown above
- Wait 5-30 minutes for DNS propagation
🛡️ Security Features
- S3 buckets are private (no public access)
- CloudFront Origin Access Control (OAC)
- TLS 1.2+ enforced with automatic SSL certificates
- Input validation for domains and files
- Security scanning of uploaded content
🚨 Troubleshooting
DNS Not Resolving
- Verify NS records at your registrar
- Wait up to 48 hours for propagation
- Test:
dig yourdomain.com NS
CloudFront Not Updating
- Clear cache:
awsup invalidate yourdomain.com - Wait 15-20 minutes for changes
Certificate Issues
- Ensure NS records are configured
- Wait up to 30 minutes for validation
💰 Cost Estimates
For a small website (<1GB, <100GB transfer/month): ~$5-10/month
- Route53: $0.50 per hosted zone
- S3: ~$0.023 per GB stored
- CloudFront: ~$0.085 per GB transferred
- ACM: Free with CloudFront
🎛️ Advanced Usage
Multiple environments:
awsup deploy staging.myapp.com --website-path ./dist-staging
awsup deploy myapp.com --website-path ./dist-production
Custom configuration:
awsup init yourdomain.com --region us-west-2 --environment prod
📊 Monitoring
AWSUP automatically sets up:
- CloudWatch dashboards
- Resource tagging for cost tracking
- Structured logging
- State management
🤝 Support
For issues or feature requests:
- GitHub Issues: https://github.com/Akramovic1/aws-website-quick-deployer/issues
- Include error messages, AWS region, and domain details
📄 License
MIT License - Feel free to use and modify.
Made with ❤️ for developers who want simple AWS deployments
Metadata
Release files for awsup 2.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| awsup-2.3.3.tar.gz | 57.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| awsup-2.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 104.7 kB
Release files / awsup-2.3.3.tar.gz
| Download URL | awsup-2.3.3.tar.gz |
|---|---|
| Size | 57.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
02ece856a3ee867c431f0a82fa2479f2fd08e10e387a2de290275228d95b7c75
|
|
BLAKE2b-256 checksum How to use checksums |
6ccf61d25949bc3daee632cf068da8e9236f9beb80d053947127d6a621751992
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / awsup-2.3.3-py3-none-any.whl
| Download URL | awsup-2.3.3-py3-none-any.whl |
|---|---|
| Size | 47.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
268212c750c5b63bbcb1b5cea0d07e5d62ec6bc87a074613e4fb1edbbd653b6b
|
|
BLAKE2b-256 checksum How to use checksums |
3658789313386359edd4979d48d7201c717012fc08b4cf503b91f40df75e5580
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|