awsup


Nameawsup JSON
Version 2.0.4 PyPI version JSON
download
home_pageNone
Summary🚀 AWSUP - Lightning-fast AWS static website deployment
upload_time2025-08-16 02:41:59
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT License Copyright (c) 2025 Ahmed Akram Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords aws s3 cloudfront route53 website deployment static-site
VCS
bugtrack_url
requirements boto3 botocore pytest pytest-cov pytest-mock black flake8 mypy bandit pydantic click rich jinja2 aws-cdk-lib constructs
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🚀 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

```bash
# 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:**
```bash
npm run build
awsup deploy myapp.com --website-path ./build
```

**Vue/Nuxt:**
```bash
npm run generate  
awsup deploy myapp.com --website-path ./dist
```

**Static HTML:**
```bash
awsup deploy myapp.com --website-path ./public
```

**Jekyll/Hugo:**
```bash
awsup deploy myapp.com --website-path ./_site
```

## 📋 All Commands

```bash
# Deploy website
awsup deploy yourdomain.com --website-path ./build

# 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
```

## 🔄 How It Works

1. **Route53** - Creates hosted zone and DNS records
2. **ACM** - Requests and validates SSL certificate  
3. **S3** - Creates secure bucket and uploads files
4. **CloudFront** - Sets up global CDN with SSL
5. **DNS** - Configures domain routing

## 📋 Prerequisites

1. **AWS Account** with appropriate permissions
2. **Python 3.8+** installed  
3. **AWS CLI** configured with credentials
4. **Domain name** (registered with any registrar)

### Required AWS Permissions

```json
{
  "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:**
1. Log into your domain registrar (GoDaddy, Namecheap, etc.)
2. Go to DNS settings for your domain
3. Change nameservers from default to custom
4. Enter the NS records shown above
5. 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:**
```bash
awsup deploy staging.myapp.com --website-path ./dist-staging
awsup deploy myapp.com --website-path ./dist-production
```

**Custom configuration:**
```bash
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**

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "awsup",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "aws, s3, cloudfront, route53, website, deployment, static-site",
    "author": null,
    "author_email": "Ahmed Akram <eng.akramovic@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/92/9c/0bafb6cb9587a6684599a9b4f1889254b13b03650d7e673c606fe0966736/awsup-2.0.4.tar.gz",
    "platform": null,
    "description": "# \ud83d\ude80 AWSUP - Lightning-Fast AWS Website Deployment\n\nProduction-grade CLI tool for deploying static websites to AWS using S3, CloudFront, Route53, and ACM. Zero configuration, maximum automation.\n\n## \u26a1 Quick Start\n\n```bash\n# Install globally\npip install awsup\n\n# Deploy your website instantly\ncd /path/to/your/website\nawsup deploy yourdomain.com --website-path .\n\n# Or deploy with default \"Coming Soon\" page\nawsup deploy yourdomain.com\n```\n\n**That's it!** AWSUP handles all AWS infrastructure automatically.\n\n## \u2728 Features\n\n- \ud83c\udfaf **Zero Config** - Works out of the box\n- \ud83d\udd12 **Secure by Default** - SSL, OAC, encryption enabled\n- \u26a1 **Lightning Fast** - Global CloudFront CDN\n- \ud83d\udee1\ufe0f **Production Ready** - Comprehensive validation & error handling\n- \ud83c\udfa8 **Beautiful CLI** - Rich terminal UI with progress bars\n- \ud83d\udd04 **Smart State** - Resumes interrupted deployments\n- \ud83c\udf0d **Global** - Works with any domain registrar\n\n## \ud83c\udfaf Common Workflows\n\n**React/Next.js:**\n```bash\nnpm run build\nawsup deploy myapp.com --website-path ./build\n```\n\n**Vue/Nuxt:**\n```bash\nnpm run generate  \nawsup deploy myapp.com --website-path ./dist\n```\n\n**Static HTML:**\n```bash\nawsup deploy myapp.com --website-path ./public\n```\n\n**Jekyll/Hugo:**\n```bash\nawsup deploy myapp.com --website-path ./_site\n```\n\n## \ud83d\udccb All Commands\n\n```bash\n# Deploy website\nawsup deploy yourdomain.com --website-path ./build\n\n# Check status\nawsup status yourdomain.com\n\n# Clear CDN cache\nawsup invalidate yourdomain.com\n\n# Remove all AWS resources\nawsup cleanup yourdomain.com\n\n# Advanced: Deploy in phases\nawsup phase1 yourdomain.com    # DNS setup\nawsup phase2 yourdomain.com    # Full deployment\n```\n\n## \ud83d\udd04 How It Works\n\n1. **Route53** - Creates hosted zone and DNS records\n2. **ACM** - Requests and validates SSL certificate  \n3. **S3** - Creates secure bucket and uploads files\n4. **CloudFront** - Sets up global CDN with SSL\n5. **DNS** - Configures domain routing\n\n## \ud83d\udccb Prerequisites\n\n1. **AWS Account** with appropriate permissions\n2. **Python 3.8+** installed  \n3. **AWS CLI** configured with credentials\n4. **Domain name** (registered with any registrar)\n\n### Required AWS Permissions\n\n```json\n{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": [\n        \"route53:*\",\n        \"s3:*\", \n        \"cloudfront:*\",\n        \"acm:*\",\n        \"sts:GetCallerIdentity\"\n      ],\n      \"Resource\": \"*\"\n    }\n  ]\n}\n```\n\n## \ud83d\udd27 Domain Configuration\n\nAfter running `awsup deploy`, configure nameservers at your domain registrar:\n\n```\nConfigure these nameservers at your registrar:\n  NS1: ns-123.awsdns-12.com\n  NS2: ns-456.awsdns-34.net\n  NS3: ns-789.awsdns-56.org\n  NS4: ns-012.awsdns-78.co.uk\n```\n\n**Steps:**\n1. Log into your domain registrar (GoDaddy, Namecheap, etc.)\n2. Go to DNS settings for your domain\n3. Change nameservers from default to custom\n4. Enter the NS records shown above\n5. Wait 5-30 minutes for DNS propagation\n\n## \ud83d\udee1\ufe0f Security Features\n\n- **S3 buckets are private** (no public access)\n- **CloudFront Origin Access Control** (OAC)\n- **TLS 1.2+ enforced** with automatic SSL certificates\n- **Input validation** for domains and files\n- **Security scanning** of uploaded content\n\n## \ud83d\udea8 Troubleshooting\n\n**DNS Not Resolving**\n- Verify NS records at your registrar\n- Wait up to 48 hours for propagation\n- Test: `dig yourdomain.com NS`\n\n**CloudFront Not Updating**\n- Clear cache: `awsup invalidate yourdomain.com`\n- Wait 15-20 minutes for changes\n\n**Certificate Issues**\n- Ensure NS records are configured\n- Wait up to 30 minutes for validation\n\n## \ud83d\udcb0 Cost Estimates\n\nFor a small website (<1GB, <100GB transfer/month): **~$5-10/month**\n\n- **Route53**: $0.50 per hosted zone\n- **S3**: ~$0.023 per GB stored\n- **CloudFront**: ~$0.085 per GB transferred\n- **ACM**: Free with CloudFront\n\n## \ud83c\udf9b\ufe0f Advanced Usage\n\n**Multiple environments:**\n```bash\nawsup deploy staging.myapp.com --website-path ./dist-staging\nawsup deploy myapp.com --website-path ./dist-production\n```\n\n**Custom configuration:**\n```bash\nawsup init yourdomain.com --region us-west-2 --environment prod\n```\n\n## \ud83d\udcca Monitoring\n\nAWSUP automatically sets up:\n- CloudWatch dashboards\n- Resource tagging for cost tracking\n- Structured logging\n- State management\n\n## \ud83e\udd1d Support\n\nFor issues or feature requests:\n- GitHub Issues: https://github.com/Akramovic1/aws-website-quick-deployer/issues\n- Include error messages, AWS region, and domain details\n\n## \ud83d\udcc4 License\n\nMIT License - Feel free to use and modify.\n\n---\n\n**Made with \u2764\ufe0f for developers who want simple AWS deployments**\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2025 Ahmed Akram\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.\n        ",
    "summary": "\ud83d\ude80 AWSUP - Lightning-fast AWS static website deployment",
    "version": "2.0.4",
    "project_urls": {
        "Documentation": "https://github.com/Akramovic1/aws-website-quick-deployer#readme",
        "Homepage": "https://github.com/Akramovic1/aws-website-quick-deployer",
        "Issues": "https://github.com/Akramovic1/aws-website-quick-deployer/issues",
        "Repository": "https://github.com/Akramovic1/aws-website-quick-deployer"
    },
    "split_keywords": [
        "aws",
        " s3",
        " cloudfront",
        " route53",
        " website",
        " deployment",
        " static-site"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c88ac747812a5e81788d7926e32b7a4290c97867861de3e68c3bf48d4ff280b1",
                "md5": "31ba8ab8f74635a203a70d573a89c0b5",
                "sha256": "8fed5ecc0504ee89f9d58e10ccd6c4bf440eba066ae4692973cc487b075f1ee8"
            },
            "downloads": -1,
            "filename": "awsup-2.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "31ba8ab8f74635a203a70d573a89c0b5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 37861,
            "upload_time": "2025-08-16T02:41:58",
            "upload_time_iso_8601": "2025-08-16T02:41:58.009168Z",
            "url": "https://files.pythonhosted.org/packages/c8/8a/c747812a5e81788d7926e32b7a4290c97867861de3e68c3bf48d4ff280b1/awsup-2.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "929c0bafb6cb9587a6684599a9b4f1889254b13b03650d7e673c606fe0966736",
                "md5": "9d4a93bafec8c01aa250b34c39e501e5",
                "sha256": "049770083be3cd5a06b2a6664943c3beb92bf85578983979abde3f86e2b53a3d"
            },
            "downloads": -1,
            "filename": "awsup-2.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "9d4a93bafec8c01aa250b34c39e501e5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 46764,
            "upload_time": "2025-08-16T02:41:59",
            "upload_time_iso_8601": "2025-08-16T02:41:59.350667Z",
            "url": "https://files.pythonhosted.org/packages/92/9c/0bafb6cb9587a6684599a9b4f1889254b13b03650d7e673c606fe0966736/awsup-2.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-16 02:41:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Akramovic1",
    "github_project": "aws-website-quick-deployer#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "boto3",
            "specs": [
                [
                    ">=",
                    "1.34.0"
                ]
            ]
        },
        {
            "name": "botocore",
            "specs": [
                [
                    ">=",
                    "1.34.0"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "7.4.0"
                ]
            ]
        },
        {
            "name": "pytest-cov",
            "specs": [
                [
                    ">=",
                    "4.1.0"
                ]
            ]
        },
        {
            "name": "pytest-mock",
            "specs": [
                [
                    ">=",
                    "3.11.0"
                ]
            ]
        },
        {
            "name": "black",
            "specs": [
                [
                    ">=",
                    "23.0.0"
                ]
            ]
        },
        {
            "name": "flake8",
            "specs": [
                [
                    ">=",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "mypy",
            "specs": [
                [
                    ">=",
                    "1.5.0"
                ]
            ]
        },
        {
            "name": "bandit",
            "specs": [
                [
                    ">=",
                    "1.7.0"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "click",
            "specs": [
                [
                    ">=",
                    "8.1.0"
                ]
            ]
        },
        {
            "name": "rich",
            "specs": [
                [
                    ">=",
                    "13.0.0"
                ]
            ]
        },
        {
            "name": "jinja2",
            "specs": [
                [
                    ">=",
                    "3.1.0"
                ]
            ]
        },
        {
            "name": "aws-cdk-lib",
            "specs": [
                [
                    ">=",
                    "2.100.0"
                ]
            ]
        },
        {
            "name": "constructs",
            "specs": [
                [
                    ">=",
                    "10.0.0"
                ]
            ]
        }
    ],
    "lcname": "awsup"
}
        
Elapsed time: 0.41966s