{"id":15002348,"url":"https://github.com/mardix/s3lify","last_synced_at":"2026-01-27T02:06:39.384Z","repository":{"id":57463437,"uuid":"208670082","full_name":"mardix/s3lify","owner":"mardix","description":"S3lify, a script to deploy secure (SSL) single page application (SPA) or HTML static site on AWS S3, using S3, Route53, Cloudfront and ACM.","archived":false,"fork":false,"pushed_at":"2019-09-15T23:17:10.000Z","size":11,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-18T12:15:38.263Z","etag":null,"topics":["aws-s3","cloudfront","jamstack","single-page-app","spa","ssg"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mardix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-15T23:14:21.000Z","updated_at":"2020-06-14T12:44:42.000Z","dependencies_parsed_at":"2022-09-14T16:40:30.164Z","dependency_job_id":null,"html_url":"https://github.com/mardix/s3lify","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mardix%2Fs3lify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mardix%2Fs3lify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mardix%2Fs3lify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mardix%2Fs3lify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mardix","download_url":"https://codeload.github.com/mardix/s3lify/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243146361,"owners_count":20243692,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-s3","cloudfront","jamstack","single-page-app","spa","ssg"],"created_at":"2024-09-24T18:49:45.493Z","updated_at":"2026-01-27T02:06:34.365Z","avatar_url":"https://github.com/mardix.png","language":"Python","readme":"\n# 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","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmardix%2Fs3lify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmardix%2Fs3lify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmardix%2Fs3lify/lists"}