- 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.
85 lines
2.6 KiB
Bash
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"
|
|
|