Skip to content

Instantly share code, notes, and snippets.

@dux
Created April 9, 2025 22:18
Show Gist options
  • Save dux/ff5662b376f06f09a712997b3f1c312e to your computer and use it in GitHub Desktop.
Save dux/ff5662b376f06f09a712997b3f1c312e to your computer and use it in GitHub Desktop.
Deploy local static files to AWS bucket and create website access
#!/bin/bash
BUCKET_NAME="some-bucket-1"
REGION="eu-central-1"
if [ "$1" = "rm" ]; then
echo "Removing bucket: $BUCKET_NAME"
aws s3 rm s3://$BUCKET_NAME --recursive
aws s3 rb s3://$BUCKET_NAME --force
echo "Bucket $BUCKET_NAME has been removed"
else
aws s3 mb s3://$BUCKET_NAME --region $REGION
aws s3 sync ./root s3://$BUCKET_NAME
aws s3api put-public-access-block \
--bucket $BUCKET_NAME \
--public-access-block-configuration "BlockPublicAcls=false,IgnorePublicAcls=false,BlockPublicPolicy=false,RestrictPublicBuckets=false"
cat <<EOF > policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::$BUCKET_NAME/*"
}
]
}
EOF
aws s3api put-bucket-policy --bucket $BUCKET_NAME --policy file://policy.json
rm policy.json
aws s3 website s3://$BUCKET_NAME/ --index-document index.html
echo
echo "Access your website at:"
echo "https://$BUCKET_NAME.s3.$REGION.amazonaws.com/index.html"
echo "or"
echo "http://$BUCKET_NAME.s3-website.$REGION.amazonaws.com/"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment