Files
proxmox/scripts/install-tunnel-via-api.sh
defiQUG cb47cce074 Complete markdown files cleanup and organization
- Organized 252 files across project
- Root directory: 187 → 2 files (98.9% reduction)
- Moved configuration guides to docs/04-configuration/
- Moved troubleshooting guides to docs/09-troubleshooting/
- Moved quick start guides to docs/01-getting-started/
- Moved reports to reports/ directory
- Archived temporary files
- Generated comprehensive reports and documentation
- Created maintenance scripts and guides

All files organized according to established standards.
2026-01-06 01:46:25 -08:00

85 lines
2.6 KiB
Bash

#!/bin/bash
# Install Cloudflare Tunnel using Proxmox API
# Alternative method when direct pct access fails
set -e
VMID=5000
TUNNEL_TOKEN="eyJhIjoiNTJhZDU3YTcxNjcxYzVmYzAwOWVkZjA3NDQ2NTgxOTYiLCJ0IjoiYjAyZmUxZmUtY2I3ZC00ODRlLTkwOWItN2NjNDEyOThlYmU4IiwicyI6Ik5HTmtOV0kwWXpNdFpUVmxaUzAwTVRFMkxXRXdNMk10WlRJNU1ETTFaRFF4TURBMiJ9"
PROXMOX_HOST="192.168.11.10"
# Colors
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[⚠]${NC} $1"; }
echo ""
log_info "Installing Cloudflare Tunnel via Proxmox API"
echo ""
# Create installation script to run in container
INSTALL_SCRIPT=$(cat <<'SCRIPT_END'
#!/bin/bash
set -e
# Install cloudflared if needed
if ! command -v cloudflared >/dev/null 2>&1; then
echo "Installing cloudflared..."
cd /tmp
wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
dpkg -i cloudflared-linux-amd64.deb || apt install -f -y
echo "cloudflared installed"
fi
# Install service
echo "Installing tunnel service..."
cloudflared service install eyJhIjoiNTJhZDU3YTcxNjcxYzVmYzAwOWVkZjA3NDQ2NTgxOTYiLCJ0IjoiYjAyZmUxZmUtY2I3ZC00ODRlLTkwOWItN2NjNDEyOThlYmU4IiwicyI6Ik5HTmtOV0kwWXpNdFpUVmxaUzAwTVRFMkxXRXdNMk10WlRJNU1ETTFaRFF4TURBMiJ9
# Start service
echo "Starting cloudflared service..."
systemctl start cloudflared
systemctl enable cloudflared
sleep 3
# Check status
echo "Service status:"
systemctl status cloudflared --no-pager -l | head -10
# List tunnels
echo "Tunnel list:"
cloudflared tunnel list
SCRIPT_END
)
# Save script to temp file
TEMP_SCRIPT="/tmp/install-cloudflared-$$.sh"
echo "$INSTALL_SCRIPT" > "$TEMP_SCRIPT"
chmod +x "$TEMP_SCRIPT"
# Copy script to container and execute
log_info "Copying installation script to container..."
ssh -o StrictHostKeyChecking=no root@"$PROXMOX_HOST" "cat > /tmp/install-cloudflared.sh" < "$TEMP_SCRIPT"
log_info "Executing installation in container..."
# Try to execute via pvesh or direct SSH
ssh -o StrictHostKeyChecking=no root@"$PROXMOX_HOST" "pvesh create /nodes/pve2/lxc/5000/exec --command 'bash /tmp/install-cloudflared.sh' --output-format json" 2>&1 || \
ssh -o StrictHostKeyChecking=no root@"$PROXMOX_HOST" "ssh pve2 'pct exec 5000 -- bash /tmp/install-cloudflared.sh'" 2>&1 || \
log_warn "Could not execute via API or SSH. Please run manually on pve2:"
echo ""
log_warn "If automated installation failed, run these commands on pve2:"
echo ""
echo "pct exec 5000 -- bash << 'EOF'"
echo "$INSTALL_SCRIPT"
echo "EOF"
echo ""
rm -f "$TEMP_SCRIPT"