Files
proxmox/scripts/setup-cloudflare-env.sh

101 lines
2.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# Interactive setup for Cloudflare API credentials
# Usage: ./setup-cloudflare-env.sh
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ENV_FILE="$SCRIPT_DIR/../.env"
echo "Cloudflare API Credentials Setup"
echo "================================="
echo ""
# Check if .env exists
if [[ -f "$ENV_FILE" ]]; then
echo "Found existing .env file: $ENV_FILE"
read -p "Overwrite? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Keeping existing .env file"
exit 0
fi
fi
echo ""
echo "Choose authentication method:"
echo "1. API Token (Recommended - more secure)"
echo "2. Email + API Key (Legacy)"
read -p "Choice [1-2]: " -n 1 -r
echo ""
if [[ $REPLY == "1" ]]; then
echo ""
echo "Get your API Token from:"
echo " https://dash.cloudflare.com/profile/api-tokens"
echo " Create token with: Zone:Edit, Account:Cloudflare Tunnel:Edit permissions"
echo ""
read -p "Enter Cloudflare API Token: " -s CLOUDFLARE_API_TOKEN
echo ""
if [[ -z "$CLOUDFLARE_API_TOKEN" ]]; then
echo "Error: API Token cannot be empty"
exit 1
fi
cat > "$ENV_FILE" <<EOF
# Cloudflare API Configuration
CLOUDFLARE_API_TOKEN="${CLOUDFLARE_API_TOKEN}"
# Domain
DOMAIN="d-bis.org"
# Optional: Zone ID (will be auto-detected if not set)
# CLOUDFLARE_ZONE_ID=""
# Optional: Account ID (will be auto-detected if not set)
# CLOUDFLARE_ACCOUNT_ID=""
# Tunnel Token (already installed)
TUNNEL_TOKEN="eyJhIjoiNTJhZDU3YTcxNjcxYzVmYzAwOWVkZjA3NDQ2NTgxOTYiLCJ0IjoiMTBhYjIyZGEtOGVhMy00ZTJlLWE4OTYtMjdlY2UyMjExYTA1IiwicyI6IlptRXlOMkkyTVRrdE1EZzFNeTAwTkRBNExXSXhaalF0Wm1KaE5XVmpaVEEzTVdGbCJ9"
EOF
elif [[ $REPLY == "2" ]]; then
echo ""
read -p "Enter Cloudflare Email: " CLOUDFLARE_EMAIL
read -p "Enter Cloudflare API Key: " -s CLOUDFLARE_API_KEY
echo ""
if [[ -z "$CLOUDFLARE_EMAIL" ]] || [[ -z "$CLOUDFLARE_API_KEY" ]]; then
echo "Error: Email and API Key cannot be empty"
exit 1
fi
cat > "$ENV_FILE" <<EOF
# Cloudflare API Configuration
CLOUDFLARE_EMAIL="${CLOUDFLARE_EMAIL}"
CLOUDFLARE_API_KEY="${CLOUDFLARE_API_KEY}"
# Domain
DOMAIN="d-bis.org"
# Optional: Zone ID (will be auto-detected if not set)
# CLOUDFLARE_ZONE_ID=""
# Optional: Account ID (will be auto-detected if not set)
# CLOUDFLARE_ACCOUNT_ID=""
# Tunnel Token (already installed)
TUNNEL_TOKEN="eyJhIjoiNTJhZDU3YTcxNjcxYzVmYzAwOWVkZjA3NDQ2NTgxOTYiLCJ0IjoiMTBhYjIyZGEtOGVhMy00ZTJlLWE4OTYtMjdlY2UyMjExYTA1IiwicyI6IlptRXlOMkkyTVRrdE1EZzFNeTAwTkRBNExXSXhaalF0Wm1KaE5XVmpaVEEzTVdGbCJ9"
EOF
else
echo "Invalid choice"
exit 1
fi
chmod 600 "$ENV_FILE"
echo ""
echo "✓ Credentials saved to: $ENV_FILE"
echo ""
echo "Next step: Run ./scripts/configure-cloudflare-api.sh"