From 9460b1d6761f52ead1eef4de72883a3ec4548b45 Mon Sep 17 00:00:00 2001 From: Damien Arnodo Date: Wed, 19 Nov 2025 11:51:12 +0000 Subject: [PATCH] Add Scaleway setup automation script --- scripts/setup-scaleway.sh | 114 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 scripts/setup-scaleway.sh diff --git a/scripts/setup-scaleway.sh b/scripts/setup-scaleway.sh new file mode 100644 index 0000000..4dbe65c --- /dev/null +++ b/scripts/setup-scaleway.sh @@ -0,0 +1,114 @@ +#!/bin/bash + +# Scaleway Deployment Setup Script +# This script helps configure your Scaleway environment for Hugo deployment + +set -e + +echo "==========================================" +echo "Scaleway Hugo Deployment Setup" +echo "==========================================" +echo "" + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +# Check if scw CLI is installed +if ! command -v scw &> /dev/null; then + echo -e "${RED}Error: Scaleway CLI (scw) is not installed${NC}" + echo "Install it from: https://github.com/scaleway/scaleway-cli" + exit 1 +fi + +echo -e "${GREEN}✓ Scaleway CLI found${NC}" +echo "" + +# Configuration +read -p "Enter your bucket name (default: notebook-arnodo-fr): " BUCKET_NAME +BUCKET_NAME=${BUCKET_NAME:-notebook-arnodo-fr} + +read -p "Enter region (default: fr-par): " REGION +REGION=${REGION:-fr-par} + +echo "" +echo "Configuration:" +echo " Bucket: $BUCKET_NAME" +echo " Region: $REGION" +echo "" + +read -p "Create bucket? (y/n): " CREATE_BUCKET + +if [[ $CREATE_BUCKET =~ ^[Yy]$ ]]; then + echo -e "${YELLOW}Creating bucket...${NC}" + scw object bucket create name="$BUCKET_NAME" region="$REGION" || { + echo -e "${RED}Failed to create bucket. It might already exist.${NC}" + } + echo -e "${GREEN}✓ Bucket created/verified${NC}" +fi + +echo "" +read -p "Configure bucket for static website hosting? (y/n): " CONFIGURE_WEBSITE + +if [[ $CONFIGURE_WEBSITE =~ ^[Yy]$ ]]; then + echo -e "${YELLOW}Configuring static website hosting...${NC}" + scw object bucket update "$BUCKET_NAME" \ + --website-enable=true \ + --website-index=index.html \ + --website-error=404.html \ + region="$REGION" + echo -e "${GREEN}✓ Website hosting configured${NC}" +fi + +echo "" +read -p "Apply public read bucket policy? (y/n): " APPLY_POLICY + +if [[ $APPLY_POLICY =~ ^[Yy]$ ]]; then + echo -e "${YELLOW}Creating bucket policy...${NC}" + + cat > /tmp/bucket-policy.json << EOF +{ + "Version": "2023-04-17", + "Id": "PublicRead", + "Statement": [ + { + "Sid": "PublicReadGetObject", + "Effect": "Allow", + "Principal": "*", + "Action": "s3:GetObject", + "Resource": "$BUCKET_NAME/*" + } + ] +} +EOF + + scw object bucket update "$BUCKET_NAME" \ + --policy=@/tmp/bucket-policy.json \ + region="$REGION" + + rm /tmp/bucket-policy.json + echo -e "${GREEN}✓ Public read policy applied${NC}" +fi + +echo "" +echo -e "${GREEN}==========================================" +echo "Setup Complete!" +echo "==========================================${NC}" +echo "" +echo "Bucket endpoint: http://$BUCKET_NAME.s3-website.$REGION.scw.cloud" +echo "" +echo "Next steps:" +echo "1. Add Scaleway API keys to Gitea repository secrets:" +echo " - SCW_ACCESS_KEY" +echo " - SCW_SECRET_KEY" +echo " - SCW_BUCKET_NAME=$BUCKET_NAME" +echo "" +echo "2. Configure DNS CNAME record:" +echo " notebook.arnodo.fr CNAME $BUCKET_NAME.s3-website.$REGION.scw.cloud." +echo "" +echo "3. Push to main branch to trigger deployment" +echo "" +echo "4. Test your site at: http://$BUCKET_NAME.s3-website.$REGION.scw.cloud" +echo ""