Metadata-Version: 2.1
Name: s3lify
Version: 0.1.0
Summary: A script to deploy secure (SSL) single page application (SPA) or HTML static site on AWS S3, using S3, Route53, Cloudfront and ACM.
Home-page: https://github.com/mardix/s3lify
Author: Mardix
Author-email: macx2082@gmail.com
License: MIT
Description: 
        # S3lify
        
        ---
        
        **S3lify**, a script to deploy secure (SSL) single page application (SPA) or HTML static site on AWS S3, using S3, Route53, Cloudfront and ACM.
        
        ---
        
        ## How does it work?
        
        ### Install
        
        Install S3lify. It's a Python script, run the pip command below
        
        `pip install s3lify`
        
        Then navigate to the root of the directory that contains your site, then initialize S3lify
        
        `s3lify init`
        
        Then edit the config file `s3lify.yml` to match your site's information
        
        
        
        ### Setup Process
        
        Setup S3lify 
        
        `s3lify setup`
        
        - It creates the website on S3 by creating a new website bucket
        - It creates an DNS entry on Route53 pointing to S3 website bucket
        - It provisions an SSL certificate using ACM, and validates the domain by adding the and ACM CNAME on Route53
        - *(If the domain is purchased through Route53Domains, it will update the DNS server name)*
        - It creates a new Cloudfront distribution and attaches the SSL certificate provided by ACM
        - It updates the Route53 with the Cloudfront's domain name
        - Now your SSL site is ready to deploy. You will be able to access your site via 'https://yoursite.com'
        - Ready to deploy!
        
        ### Deploy Process
        
        `s3lify deploy`
        
        - It purges all files in S3 bucket
        - It invalidates all objects in cloudfront
        - Upload the directory to S3
        - Sites updated successfully
        - That's it!
        
        ---
        
        #### AWS Service Used
        
        - S3
        - Route53
        - Route53 Domains
        - Cloudfront
        - ACM
        
        ---
        
        ## FAQ
        
        - Can I use only S3 website?
        
        Yes. In the *s3lify.yml* set `distribution: s3`
        
        - I deploy my site, but I don't see the changes.
        
        Make sure you build your site first, then run `s3lify deploy`
        
        
        ---
        
        ## Commands
        
        `pip install s3lify`: Install S3lify
        
        `s3lify init`: Init S3lify in the directory
        
        `s3lify setup`: Setup S3lify and all the AWS services needed
        
        `s3lify deploy`: Deploy the site
        
        `s3lify status`: see the status of the site
        
        
        
        ---
        
        ## Config
        
        At the root of the directory, outside of the build folder, create the config file `s3lify.yml`
        
        ```yml
        
        # s3lify.yml
        # -----------------------------------------------------------------------------
        # S3lify config
        # -----------------------------------------------------------------------------
        
        #:: AWS credentials and region
        aws_region: us-east-1
        # aws_access_key_id: 
        # aws_secret_access_key: 
        
        #:: Site Info
        # The domain without the 'www.'. It will create the S3 bucket with it
        domain:  # 'mysite.com'
        
        # The directory containing the site to upload, from the CWD running s3now
        site_directory: ./mysite
        
        # For working with SPA, point the error_file to 'index.html' 
        index_file: index.html # index.html
        error_file: error.html # error.html
        
        #:: Purge files.
        purge_files: True         # To delete all the files on S3
        purge_exclude_files:      # Files not to delete on purge
          - index.html
          - error.html
        
        #:: distribution
        # The type of distribution
        # s3 | route53 | cloudfront
        # default: s3
        # s3: to deploy to s3 only
        # route53: will deploy on s3 and set the domain on Route53
        # cloudfront: deploy on s3, set route53, set ACM for SSL and activate cloudfront 
        distribution: cloudfront
        
        #:: update_route53domains_dns
        # default: True
        # when true it will attempt to update the domain DNS with the route53 Name servers
        update_route53domains_dns: True
        
        #:: invalidate_cloudfront_objects
        # To invalidate cloudfront objects, so it can retrieve new contents
        invalidate_cloudfront_objects: True
        
        ```
        
        ---
        
        License: MIT
        
Platform: any
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
