Package: webflow-aws
webflow-aws🛑If you already deployed one website using thev1version of the tool, follow theMigration from v1 to v2section before updating the tool version.An out-of-the box tool written in Python to deploy yourWebflowstatic website on AWS with a serverless architecture.This tool uses the power of Cloud Formation to let you have your website up in minutes, with CDN and SSL Certificate enabled.You can manage up to an infinite number of websites in the same AWS account, paying only for the real traffic. That's the beautiful part of serverless 😉☝️In this version, everything needs to be hosted in AWS, also your domain.Getting StartedPrerequisitesIn order to use this tool, you need to have:Access to an Active AWS account with all required permissionsNodeJS10.3.0 or later installed
(instructions).Python 3.6 or later with pip3 installed (instructions)AWS CLI installed and configured (instructions).Finally, install theAWS CDK command line toolwith the following commandnpminstall-gaws-cdkInstallationYou can download and install the latest version of this tool from the Python package index (Pypi)
as follows:pip3installwebflow-awsAdvanced InstallationThis section explains how build and install the Python package using the source code.Clone repo & build your packageTo use our tool, you have to clone this repository and install:Clone using HTTPs:gitclonehttps://github.com/odfdata/webflow-aws.gitClone using SSH:gitclonegit@github.com:odfdata/webflow-aws.gitAfter you cloned the repository, go inside thewebflow-awsfolder and generate the.whlpackage to be installed.cdwebflow-aws
python3setup.pysdistbdist_wheelInstall the packageThe build file (generate above) will be visible in thedist/folder. You will have awheelandtar.gzfile.
If you previously installed another version ofwebflow-aws, it's recommended to uninstall it running the following
command:pip3uninstalldist/webflow_aws-{version}-py3-none-any.whlNow you're ready to install the package inside thedist/folder. Without renaming them, you can install our tool on
any computer with the following commandpip3installdist/webflow_aws-{version}-py3-none-any.whlYou can find the{version}inside thesetup.pyfile.Check if everything is workingAt this point, on your target machine, you will be able to use the tool by typingwebflow-awsfrom any folder. To see
the available commands, and check if it's correctly installed, run the following commandwebflow-aws--helpMigration from v1 to v2If you used thev1version of the tool and you plan to migrate to thev2, remember this:⚠️Running the commands below will put your current website offline for couple of minutes. Plan to run the migration when you don't have traffic on your website.To migrate fromv1tov2, you have to delete the current deployed website from the AWS Console.
Unfortunately is not possible to do it using our tool since there are resources that are running at edge and it takes
time to complete the deletion on AWS side.These are the steps to delete your current website:Open the configuration file you have locally (namedwebflow-aws-config.yaml), and search for the keywordsstack_nameandbucket_nameand copy the values.Go to AWS Console and login in the account you have deployed your website.Search for the AWS service namedS3and open it.Search for the Bucket with the same name copied before and click on the circle on the left of the name.Click on theEmptybutton, and now you are ready to click onDeletebuttonSearch for the AWS service namedCloudFormationand open it.Search for the stack deployed, click on it and click onDeleteAfter a couple of minutes, you will see the status stack equal toDELETE_FAILEDYou can now click onDeleteagain, and check the square on the left of the resource nameNow you can click onDelete stack, and you are ready to upgrade your local tool.Update from v1 to v2Run the following command to update the tool:pip3install--upgradewebflow-awsNow you are ready to deploy your website using the new version running:webflow-awspublishDeploy your websiteYou are now ready to deploy your website. Start by going toWebflowand download your created website as a.zipfile
(click hereto see a detailed guide on how to do it).Once you downloaded it, create a folder and put the.zipfile inside. The folder's name does not matter, but make it meaningful for you. In our guide we will use theexample-websitefolderSet up DNS recordOnce your website is deployed, you will need a DNS Record to point to the file location. Withwebflow-awsyou can do that in two ways:create ahosted zone inside Route53(guide) on the AWS account you're using to deploy the website. In this scenariowebflow-awsautomatically manages the creation of all needed configuration, both for DNS Records and for SSL Certificate verification.[beta]use acustom DNS manager, such as GoDaddy or your domain registrant. In this scenario, do not configure Route 53 properties and, once website is published, instructions with CNAMEs to set will be shown to you, so that you can manually configure them. Moreover, during first website deployment, you will need to publish a TXT record to verify your SSL Certificate.Withwebflow-awsyou can have one or more subdomain point at your website, such asexample.comandwww.example.com.In thewebflow-aws-config.yamlfile you will need to set the list of domains you would like to have your website pointing at. For example, you can haveexample.comandwww.example.comenabled.Create webflow-aws-config.yaml fileThewebflow-aws-config.yamlfile allows you to customize the website you want to publish online. To create it, you
have to run this command:webflow-awscreate-configIt will guide you through the creation of the configuration. At the end of this procedure, you will see thewebflow-aws-config.yamlin your current directory.Advanced creationIf you want to create the configuration file on your own, this is an example file you can customize:# REQUIRED parametersbucket_name:"www.example.com"domain_name:"example.com"CNAMEs:-"www.example.com"route_53_hosted_zone_id:"Z05234556KK8DIAQM"route_53_hosted_zone_name:"example.com"stack_name:"WwwExampleComStack"# OPTIONAL parametersaws_profile_name:"default"bucket_name: the AWS S3 bucket name you want to create. In most of the cases, it's equal to the domain name.domain_name: the domain name you want to use to expose your website.CNAMEs: the list of alternative domain names you want to redirect to the domain name.route_53_hosted_zone_id: the AWS Route53 hosted zone created. Thisguideshows how to create a
new hosted zone and get hisid.route_53_hosted_zone_name: the AWS Route53 hosted zone domain name.stack_name: the name of the stack which all the resources will be grouped in. In most of the cases, it's the
domain name without dots.Optional Parametersaws_profile_name: (optional) the AWS profile name configured in AWS CLI. If you didn't specify it,
the profile name isdefaultPlace this file inside theexample-website/folder previously created. The content of that folder should be|——example-website||——weblfow-files.zip||——webflow-aws-config.yamlPublish your websiteNow you are ready to publish your website online.Go inside the folder created before that contains:webflow-aws-config.yamlfile.zipfileTo deploy your website, you have to execute this command:webflow-awspublishIn 2 minutes, the content will be public available under the specifieddomain names.