mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-05-22 19:54:22 +00:00
Implemented the following IONOS cloud combinations: - ionos/openclaw - ionos/nanoclaw - ionos/codex - ionos/interpreter - ionos/gemini - ionos/amazonq - ionos/cline - ionos/gptme - ionos/opencode - ionos/plandex - ionos/kilocode - ionos/continue All scripts follow the standard IONOS pattern: 1. Source ionos/lib/common.sh with local/remote fallback 2. Resolve IONOS credentials (IONOS_USERNAME, IONOS_PASSWORD) 3. Generate SSH key 4. Create server with cloud-init 5. Wait for SSH and cloud-init completion 6. Install agent (npm, pip, or curl installer) 7. Get OpenRouter API key via OAuth 8. Inject environment variables 9. Launch interactive session Updated manifest.json to mark all 12 combinations as implemented. Agent: gap-filler-4 Co-authored-by: B <6723574+louisgv@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
65 lines
2 KiB
Bash
65 lines
2 KiB
Bash
#!/bin/bash
|
|
set -eo pipefail
|
|
|
|
# Source common functions - try local file first, fall back to remote
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
|
# shellcheck source=ionos/lib/common.sh
|
|
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
|
source "${SCRIPT_DIR}/lib/common.sh"
|
|
else
|
|
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/ionos/lib/common.sh)"
|
|
fi
|
|
|
|
log_info "Plandex on IONOS Cloud"
|
|
echo ""
|
|
|
|
# 1. Resolve IONOS credentials
|
|
ensure_ionos_credentials
|
|
|
|
# 2. Generate SSH key
|
|
ensure_ssh_key
|
|
|
|
# 3. Get server name and create server
|
|
SERVER_NAME=$(get_server_name)
|
|
create_server "${SERVER_NAME}"
|
|
|
|
# 4. Wait for SSH and cloud-init
|
|
verify_server_connectivity "${IONOS_SERVER_IP}"
|
|
wait_for_cloud_init "${IONOS_SERVER_IP}" 60
|
|
|
|
# 5. Install Plandex
|
|
log_warn "Installing Plandex..."
|
|
if ! run_server "${IONOS_SERVER_IP}" "command -v plandex" >/dev/null 2>&1; then
|
|
run_server "${IONOS_SERVER_IP}" "curl -sL https://plandex.ai/install.sh | bash"
|
|
fi
|
|
|
|
# Verify installation succeeded
|
|
if ! run_server "${IONOS_SERVER_IP}" "command -v plandex &> /dev/null && plandex version &> /dev/null"; then
|
|
log_error "Plandex installation verification failed"
|
|
log_error "The 'plandex' command is not available or not working properly on server ${IONOS_SERVER_IP}"
|
|
exit 1
|
|
fi
|
|
log_info "Plandex installation verified successfully"
|
|
|
|
# 6. Get OpenRouter API key
|
|
echo ""
|
|
if [[ -n "${OPENROUTER_API_KEY:-}" ]]; then
|
|
log_info "Using OpenRouter API key from environment"
|
|
else
|
|
OPENROUTER_API_KEY=$(get_openrouter_api_key_oauth 5180)
|
|
fi
|
|
|
|
log_warn "Setting up environment variables..."
|
|
inject_env_vars_ssh "${IONOS_SERVER_IP}" upload_file run_server \
|
|
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}"
|
|
|
|
echo ""
|
|
log_info "IONOS server setup completed successfully!"
|
|
log_info "Server: ${SERVER_NAME} (ID: ${IONOS_SERVER_ID}, IP: ${IONOS_SERVER_IP})"
|
|
echo ""
|
|
|
|
# 7. Start Plandex interactively
|
|
log_warn "Starting Plandex..."
|
|
sleep 1
|
|
clear
|
|
interactive_session "${IONOS_SERVER_IP}" "source ~/.zshrc && plandex"
|