Deploy your Webflow static website on AWS
Project description
webflow-aws
An out-of-the box tool written in Python to deploy your Webflow static 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 😉
:point_up: | In this version, everything needs to be hosted in AWS, also your domain. |
---|
Getting Started
Prerequisites
In order to use this tool, you need to have:
- Access to an Active AWS account with all required permissions
- NodeJS 10.3.0 or later installed (instructions).
- Python 3.6 or later with pip3 installed (instructions)
- AWS CLI installed and configured (instructions).
Finally, install the AWS CDK command line tool with the following command
npm install -g aws-cdk
Installation
You can download and install the latest version of this tool from the Python package index (Pypi) as follows:
pip3 install --upgrade webflow-aws
Advanced Installation
This section explains how build and install the Python package using the source code.
Clone repo & build your package
To use our tool, you have to clone this repository and install:
- Clone using HTTPs:
git clone https://github.com/CreateInCloud/webflow-aws.git
- Clone using SSH:
git clone git@github.com:CreateInCloud/webflow-aws.git
After you cloned the repository, go inside the webflow-aws folder and generate the .whl package to be installed.
cd webflow-aws
python3 setup.py sdist bdist_wheel
Install the package
The build file (generate above) will be visible in the dist/
folder. You will have a wheel
and tar.gz
file.
If you previously installed another version of webflow-aws
, it's recommended to uninstall it running the following
command:
pip3 uninstall dist/webflow_aws-{version}-py3-none-any.whl
Now you're ready to install the package inside the dist/
folder. Without renaming them, you can install our tool on
any computer with the following command
pip3 install dist/webflow_aws-{version}-py3-none-any.whl
You can find the {version}
inside the setup.py
file.
Check if everything is working
At this point, on your target machine, you will be able to use the tool by typing webflow-aws
from any folder. To see
the available commands, and check if it's correctly installed, run the following command
webflow-aws --help
Deploy your website
You are now ready to deploy your website. Start by going to Webflow and download your created website as a .zip
file
(click here to see a detailed guide on how to do it).
Once you downloaded it, create a folder and put the .zip
file inside. The folder's name doesn't matter, but make it meaningful for you. In our guide we will use the example-website
folder
Set up DNS record
Once your website is deployed, you will need a DNS Record to point to the file location. With webflow-aws
you can do that in two ways:
- create a hosted zone inside Route53 (guide) on the AWS account you're using to deploy the website. In this scenario
webflow-aws
automatically manages the creation of all needed configuration, both for DNS Records and for SSL Certificate verification. - [beta] use a custom 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.
With webflow-aws
you can have one or more sub-domain point at your website, such as example.com
and www.example.com
.
In the webflow-aws-config.yaml
file you will need to set the list of domains you would like to have your website pointing at. For example, you can have example.com
and www.example.com
enabled.
Create webflow-aws-config.yaml file
The webflow-aws-config.yaml
file allows you to customize the website you want to publish online. To create it, you
have to run this command:
webflow-aws create-config
It will guide you through the creation of the configuration. At the end of this procedure, you will see the
webflow-aws-config.yaml
in your current directory.
Advanced creation
If you want to create the configuration file on your own, this is an example file you can customize:
# REQUIRED parameters
bucket_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 parameters
aws_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. This
guide shows 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 Parameters
- aws_profile_name: (optional) the AWS profile name configured in AWS CLI. If you didn't specify it,
the profile name is
default
Place this file inside the example-website/
folder previously created. The content of that folder should be
|—— example-website
| |—— weblfow-files.zip
| |—— webflow-aws-config.yaml
Publish your website
Now you are ready to publish your website online.
Go inside the folder created before that contains:
webflow-aws-config.yaml
file.zip
file
If it's the first time you are deploying it online, you have to call this command before:
webflow-aws setup
This command will create the Cloud Formation stack containing the support resources.
After this command, you can execute:
webflow-aws publish
In 2 minutes, the content will be public available under the specified domain names.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for webflow_aws-1.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 038ebfdd6cf4f3b1a494d8c899be28e184ab8acb56632d4389b8758fff0e8b33 |
|
MD5 | 03922103f39b6b79bcf0b02bc0f2032d |
|
BLAKE2b-256 | 702d2f8ff06b3a1d13f86026f3f7e15475c067e00a49f4315766c9c2d1434a41 |