Skip to main content

static-deployer

What is static-deployer?

static-deployer aims to simplify the deploy and rollback of your static website (frontend) to AWS using a single command. It still does not create the AWS resources for you, so you need to have a previously configured S3 bucket and a CloudFront distribution configured with an origin to your S3 bucket. The credentials you will use to run the static-deployer need to have permission List+Read+Write permissions to the specified bucket and cloudfront distribution.

How to install?

pip3 install static-deployer

How to configure the AWS credentials?

We recomend using aws-vault because it does not store your credentials in plaintext. But you can also use aws-cli.

After installing aws-vault, add a new profile using the following command:

aws-vault add mysite

How to deploy a static website?

aws-vault exec mysite -- static-deployer deploy \
    --root-dir ROOT_DIR \
    --patterns PATTERNS \
    --bucket-name BUCKET_NAME \
    --distribution-id DISTRIBUTION_ID \
    --origin-name ORIGIN_NAME \
    --version VERSION
    --cache-maxage "1 hour"

The deploy does the following:

  1. Finds all files from ROOT_DIR, including only those that match the patterns specified in PATTERNS (comma separated);
  2. Unside the bucket specified by BUCKET_NAME, creates a new folder/directory with the name specified in VERSION;
  3. Uploads all files to the folder/directory created in step 2;
  4. Changes the CloudFront distribution DISTRIBUTION_ID origin named ORIGIN_NAME to point the folder/directory created in step 2;
  5. Invalidates the CloudFront distribution DISTRIBUTION_ID cache using the pattern /*;
  6. Waits for the distribution changes to complete.

How to rollback to a previous deployed version?

static-deployer rollback \
    --bucket-name BUCKET_NAME \
    --distribution-id DISTRIBUTION_ID \
    --origin-name ORIGIN_NAME \
    --version VERSION

The rollback does the following:

  1. Changes the CloudFront origin ORIGIN_NAME to point to a previously deployed version specified by VERSION.
  2. Waits for the distribution changes to complete.

Example of config file config.toml

dry_run = "false"

[content]
root_dir = "public"
patterns = "**"

[storage]
name = "your-website-domain.com"
prefix = "{{version}}"
cache_maxage = "1 hour"

[cdn]
distribution_id = "your-cloudfront-distribution-id"
origin_name = "your-cloudfront-origin-name"

How to use the config file?

static-deployer -c config.toml deploy --version VERSION

Once you have settings in a config file, you can tell static-deployer to use the config file by using the arguments -c yourfile.toml. By specifying a config file, you eliminate the need of informing all parameters at every invocation. You're then required to inform only the missing parameters. The command-line arguments override any settings you have in the config file.

Metadata

Release files for static-deployer 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for static-deployer 0.1.5
File Size Uploaded
static-deployer-0.1.5.tar.gz 13.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for static-deployer 0.1.5
File Interpreter ABI Platform
static_deployer-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 27.7 kB

Release files / static-deployer-0.1.5.tar.gz

Download URL static-deployer-0.1.5.tar.gz
Size 13.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d1e4363653b2b25dfda8e2fa9f3191504b89502951a69713387ec1cf38a0b4cb
BLAKE2b-256 checksum
How to use checksums
527d4377ac36ab072ea42af1375e7fe829800b490aa3c8dd40dadef48d626ba1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / static_deployer-0.1.5-py3-none-any.whl

Download URL static_deployer-0.1.5-py3-none-any.whl
Size 14.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e2a31ad904a91894aeca39449935031403dd8b88288a49721756ff33504367c4
BLAKE2b-256 checksum
How to use checksums
0158909d8a737a5a1e0b8057d86ad7e6eb66f52a8fef64526e8815c79b054361
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page