1+ #! /bin/bash
2+ # Comprehensive setup script for Hetzner server with Docker and Cloudflare R2 configuration
3+
4+ # Exit on error
5+ set -e
6+
7+ echo " 🔄 Updating system..."
8+ apt update && apt upgrade -y
9+
10+ echo " 🐳 Installing Docker..."
11+ # Install Docker using official script
12+ curl -fsSL https://get.docker.com -o get-docker.sh
13+ sh get-docker.sh
14+ systemctl enable --now docker
15+
16+ # Set up Docker Hub credentials
17+ echo " 🔐 Setting up Docker Hub login..."
18+ echo " Enter your Docker Hub username:"
19+ read DOCKER_USERNAME
20+ echo " Enter your Docker Hub password/token:"
21+ read -s DOCKER_PASSWORD
22+ echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin
23+ echo " ✅ Docker Hub login configured"
24+
25+ echo " ☁️ Installing AWS CLI for Cloudflare R2..."
26+ # Install AWS CLI
27+ apt install -y unzip curl
28+ curl " https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o " awscliv2.zip"
29+ unzip awscliv2.zip
30+ ./aws/install
31+ rm -rf aws awscliv2.zip
32+
33+ # Configure AWS CLI for R2
34+ echo " 🔧 Configuring AWS CLI for Cloudflare R2..."
35+ echo " Enter your Cloudflare R2 Access Key ID:"
36+ read R2_ACCESS_KEY
37+ echo " Enter your Cloudflare R2 Secret Access Key:"
38+ read -s R2_SECRET_KEY
39+ echo " Enter your Cloudflare Account ID:"
40+ read CLOUDFLARE_ACCOUNT_ID
41+
42+ # Create R2 profile configuration
43+ mkdir -p ~ /.aws
44+ cat > ~ /.aws/credentials << EOL
45+ [r2]
46+ aws_access_key_id = $R2_ACCESS_KEY
47+ aws_secret_access_key = $R2_SECRET_KEY
48+ EOL
49+
50+ cat > ~ /.aws/config << EOL
51+ [profile r2]
52+ region = auto
53+ endpoint_url = https://$CLOUDFLARE_ACCOUNT_ID .r2.cloudflarestorage.com
54+ EOL
55+
56+ echo " ✅ R2 configuration complete"
57+
58+ echo " 🎉 Setup complete! You can find helpful Docker and R2 commands in ~/docker-commands.sh"
59+ echo " Test your R2 connection: aws s3 ls --profile r2"
0 commit comments