{ "info": { "author": "Mardix", "author_email": "macx2082@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# S3lify\n\n---\n\n**S3lify**, a script to deploy secure (SSL) single page application (SPA) or HTML static site on AWS S3, using S3, Route53, Cloudfront and ACM.\n\n---\n\n## How does it work?\n\n### Install\n\nInstall S3lify. It's a Python script, run the pip command below\n\n`pip install s3lify`\n\nThen navigate to the root of the directory that contains your site, then initialize S3lify\n\n`s3lify init`\n\nThen edit the config file `s3lify.yml` to match your site's information\n\n\n\n### Setup Process\n\nSetup S3lify \n\n`s3lify setup`\n\n- It creates the website on S3 by creating a new website bucket\n- It creates an DNS entry on Route53 pointing to S3 website bucket\n- It provisions an SSL certificate using ACM, and validates the domain by adding the and ACM CNAME on Route53\n- *(If the domain is purchased through Route53Domains, it will update the DNS server name)*\n- It creates a new Cloudfront distribution and attaches the SSL certificate provided by ACM\n- It updates the Route53 with the Cloudfront's domain name\n- Now your SSL site is ready to deploy. You will be able to access your site via 'https://yoursite.com'\n- Ready to deploy!\n\n### Deploy Process\n\n`s3lify deploy`\n\n- It purges all files in S3 bucket\n- It invalidates all objects in cloudfront\n- Upload the directory to S3\n- Sites updated successfully\n- That's it!\n\n---\n\n#### AWS Service Used\n\n- S3\n- Route53\n- Route53 Domains\n- Cloudfront\n- ACM\n\n---\n\n## FAQ\n\n- Can I use only S3 website?\n\nYes. In the *s3lify.yml* set `distribution: s3`\n\n- I deploy my site, but I don't see the changes.\n\nMake sure you build your site first, then run `s3lify deploy`\n\n\n---\n\n## Commands\n\n`pip install s3lify`: Install S3lify\n\n`s3lify init`: Init S3lify in the directory\n\n`s3lify setup`: Setup S3lify and all the AWS services needed\n\n`s3lify deploy`: Deploy the site\n\n`s3lify status`: see the status of the site\n\n\n\n---\n\n## Config\n\nAt the root of the directory, outside of the build folder, create the config file `s3lify.yml`\n\n```yml\n\n# s3lify.yml\n# -----------------------------------------------------------------------------\n# S3lify config\n# -----------------------------------------------------------------------------\n\n#:: AWS credentials and region\naws_region: us-east-1\n# aws_access_key_id: \n# aws_secret_access_key: \n\n#:: Site Info\n# The domain without the 'www.'. It will create the S3 bucket with it\ndomain: # 'mysite.com'\n\n# The directory containing the site to upload, from the CWD running s3now\nsite_directory: ./mysite\n\n# For working with SPA, point the error_file to 'index.html' \nindex_file: index.html # index.html\nerror_file: error.html # error.html\n\n#:: Purge files.\npurge_files: True # To delete all the files on S3\npurge_exclude_files: # Files not to delete on purge\n - index.html\n - error.html\n\n#:: distribution\n# The type of distribution\n# s3 | route53 | cloudfront\n# default: s3\n# s3: to deploy to s3 only\n# route53: will deploy on s3 and set the domain on Route53\n# cloudfront: deploy on s3, set route53, set ACM for SSL and activate cloudfront \ndistribution: cloudfront\n\n#:: update_route53domains_dns\n# default: True\n# when true it will attempt to update the domain DNS with the route53 Name servers\nupdate_route53domains_dns: True\n\n#:: invalidate_cloudfront_objects\n# To invalidate cloudfront objects, so it can retrieve new contents\ninvalidate_cloudfront_objects: True\n\n```\n\n---\n\nLicense: MIT\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mardix/s3lify", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "s3lify", "package_url": "https://pypi.org/project/s3lify/", "platform": "any", "project_url": "https://pypi.org/project/s3lify/", "project_urls": { "Homepage": "https://github.com/mardix/s3lify" }, "release_url": "https://pypi.org/project/s3lify/0.1.0/", "requires_dist": [ "boto3", "pyyaml", "click", "halo", "tldextract" ], "requires_python": "", "summary": "A script to deploy secure (SSL) single page application (SPA) or HTML static site on AWS S3, using S3, Route53, Cloudfront and ACM.", "version": "0.1.0" }, "last_serial": 5833233, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "f4abf60dea9e8c2100c39fcde94e0f0b", "sha256": "1a86c181eff30c1cd201b2436834b2d10929616209fd264213961a8d16508ef6" }, "downloads": -1, "filename": "s3lify-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f4abf60dea9e8c2100c39fcde94e0f0b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23613, "upload_time": "2019-09-15T23:21:39", "url": "https://files.pythonhosted.org/packages/82/96/80cb4a50091a3c0d34a72c3fe7e3d01ca39f523e1ea2890553cd284cab60/s3lify-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1062a0f997ef63308b890a8499c800e6", "sha256": "5b13073317aa4c6abf38d08b298c9ce8efb4f379a70078da9e6161863c9c7550" }, "downloads": -1, "filename": "s3lify-0.1.0.tar.gz", "has_sig": false, "md5_digest": "1062a0f997ef63308b890a8499c800e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21736, "upload_time": "2019-09-15T23:21:41", "url": "https://files.pythonhosted.org/packages/15/3d/a2a85ea449b8c9f1cf265693ca614083f100c4fd4460a5e5dc596e8b28c1/s3lify-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f4abf60dea9e8c2100c39fcde94e0f0b", "sha256": "1a86c181eff30c1cd201b2436834b2d10929616209fd264213961a8d16508ef6" }, "downloads": -1, "filename": "s3lify-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f4abf60dea9e8c2100c39fcde94e0f0b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23613, "upload_time": "2019-09-15T23:21:39", "url": "https://files.pythonhosted.org/packages/82/96/80cb4a50091a3c0d34a72c3fe7e3d01ca39f523e1ea2890553cd284cab60/s3lify-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1062a0f997ef63308b890a8499c800e6", "sha256": "5b13073317aa4c6abf38d08b298c9ce8efb4f379a70078da9e6161863c9c7550" }, "downloads": -1, "filename": "s3lify-0.1.0.tar.gz", "has_sig": false, "md5_digest": "1062a0f997ef63308b890a8499c800e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21736, "upload_time": "2019-09-15T23:21:41", "url": "https://files.pythonhosted.org/packages/15/3d/a2a85ea449b8c9f1cf265693ca614083f100c4fd4460a5e5dc596e8b28c1/s3lify-0.1.0.tar.gz" } ] }