#!/bin/bash # Quick setup script for deployment configuration set -e echo "===================================" echo "Deployment Skill Setup Wizard" echo "===================================" echo "" # Function to read input with default read_input() { local prompt="$1" local default="$2" local var_name="$3" if [ -n "$default" ]; then read -p "$prompt [$default]: " input eval "$var_name=\"${input:-$default}\"" else read -p "$prompt: " input eval "$var_name=\"$input\"" fi } # Target name read_input "Enter deployment target name (e.g., PRODUCTION, STAGING)" "" TARGET TARGET=$(echo "$TARGET" | tr '[:lower:]' '[:upper:]') echo "" echo "--- Gitea Configuration ---" read_input "Gitea registry URL (without https://)" "gitea.example.com" GITEA_URL read_input "Gitea username" "" GITEA_USER echo "Gitea token (will be hidden): " read -s GITEA_TOKEN echo "" read_input "Gitea namespace (org or username)" "$GITEA_USER" GITEA_NAMESPACE echo "" echo "--- Remote Server Configuration ---" read_input "SSH host alias (from ~/.ssh/config)" "" SSH_HOST read_input "Stacks directory on remote server" "/srv/docker/stacks" STACKS_DIR echo "" echo "--- Webapp Configuration (optional, press Enter to skip) ---" read_input "Root domain (e.g., sal.giize.com - app served as subdomain)" "" DOMAIN # Conditional NPM fields if [ -n "$DOMAIN" ]; then read_input "Nginx Proxy Manager URL" "https://npm.example.com" NPM_URL read_input "NPM admin email" "admin@example.com" NPM_USER echo "NPM password (will be hidden): " read -s NPM_PASS echo "" fi echo "" echo "--- Network Configuration (optional, press Enter for defaults) ---" read_input "Proxy network name" "proxy" PROXY_NETWORK read_input "Ollama network name (for AI/LLM apps)" "ollama" OLLAMA_NETWORK read_input "Ollama container name (for deriving connection URL)" "ollama" OLLAMA_CONTAINER # Generate JSON config if [ -n "$DOMAIN" ]; then JSON_CONFIG=$(cat < "$CONFIG_FILE" echo "" echo "✓ Saved to $CONFIG_FILE" echo "Load it with: source $CONFIG_FILE" fi echo "" echo "===================================" echo "Next Steps:" echo "===================================" echo "" echo "1. Set the environment variable (see above)" echo "2. Verify SSH access: ssh $SSH_HOST \"echo 'Test OK'\"" echo "3. Create Docker networks on remote server (run once per server):" echo " ssh $SSH_HOST \"docker network create $PROXY_NETWORK\"" if [ -n "$OLLAMA_NETWORK" ]; then echo " ssh $SSH_HOST \"docker network create $OLLAMA_NETWORK\" # For AI/LLM apps" fi echo "4. Navigate to your application directory" echo "5. Tell the agent: 'deploy $TARGET'" echo "" echo "The agent will auto-detect your app's configuration and ask for confirmation!" echo ""