Initial commit: loc_az_hci (smom-dbis-138 excluded via .gitignore)
Some checks failed
Test / test (push) Has been cancelled
Some checks failed
Test / test (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
87
scripts/configure/automate-gitea-setup.sh
Executable file
87
scripts/configure/automate-gitea-setup.sh
Executable file
@@ -0,0 +1,87 @@
|
||||
#!/bin/bash
|
||||
# Automated Gitea Setup via API
|
||||
# This script attempts to configure Gitea programmatically
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
GITEA_IP="${GITEA_IP:-192.168.1.121}"
|
||||
GITEA_URL="http://${GITEA_IP}:3000"
|
||||
ADMIN_USER="${ADMIN_USER:-admin}"
|
||||
ADMIN_EMAIL="${ADMIN_EMAIL:-admin@hc-stack.local}"
|
||||
ADMIN_PASSWORD="${ADMIN_PASSWORD:-admin123}"
|
||||
|
||||
echo "=== Automated Gitea Setup ==="
|
||||
echo ""
|
||||
|
||||
# Check if Gitea is already configured
|
||||
echo "Checking Gitea status..."
|
||||
STATUS=$(curl -s "${GITEA_URL}/api/v1/version" 2>&1 || echo "not_ready")
|
||||
|
||||
if echo "$STATUS" | grep -q "version"; then
|
||||
echo "✓ Gitea is already configured"
|
||||
echo "Access: ${GITEA_URL}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Gitea needs initial setup. Attempting automated configuration..."
|
||||
echo ""
|
||||
|
||||
# Try to configure via setup API
|
||||
SETUP_RESPONSE=$(curl -s -X POST "${GITEA_URL}/api/v1/setup" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{
|
||||
\"db_type\": \"postgres\",
|
||||
\"db_host\": \"db:5432\",
|
||||
\"db_user\": \"gitea\",
|
||||
\"db_passwd\": \"gitea\",
|
||||
\"db_name\": \"gitea\",
|
||||
\"ssl_mode\": \"disable\",
|
||||
\"repo_root_path\": \"/data/git/repositories\",
|
||||
\"lfs_root_path\": \"/data/git/lfs\",
|
||||
\"log_root_path\": \"/data/gitea/log\",
|
||||
\"run_user\": \"git\",
|
||||
\"domain\": \"${GITEA_IP}\",
|
||||
\"ssh_port\": 2222,
|
||||
\"http_port\": 3000,
|
||||
\"app_name\": \"Gitea\",
|
||||
\"enable_federated_avatar\": false,
|
||||
\"enable_open_id_sign_in\": false,
|
||||
\"enable_open_id_sign_up\": false,
|
||||
\"default_allow_create_organization\": true,
|
||||
\"default_enable_timetracking\": true,
|
||||
\"no_reply_address\": \"noreply.hc-stack.local\",
|
||||
\"admin_name\": \"${ADMIN_USER}\",
|
||||
\"admin_email\": \"${ADMIN_EMAIL}\",
|
||||
\"admin_passwd\": \"${ADMIN_PASSWORD}\",
|
||||
\"admin_confirm_passwd\": \"${ADMIN_PASSWORD}\"
|
||||
}" 2>&1)
|
||||
|
||||
if echo "$SETUP_RESPONSE" | grep -q "success\|created"; then
|
||||
echo "✓ Gitea configured successfully!"
|
||||
echo ""
|
||||
echo "Access: ${GITEA_URL}"
|
||||
echo "Username: ${ADMIN_USER}"
|
||||
echo "Password: ${ADMIN_PASSWORD}"
|
||||
echo ""
|
||||
echo "⚠️ Please change the default password after first login"
|
||||
else
|
||||
echo "⚠️ Automated setup failed or Gitea requires manual configuration"
|
||||
echo ""
|
||||
echo "Please complete setup manually:"
|
||||
echo "1. Open: ${GITEA_URL}"
|
||||
echo "2. Complete the installation form"
|
||||
echo "3. Use the following settings:"
|
||||
echo " - Database Type: PostgreSQL"
|
||||
echo " - Database Host: db:5432"
|
||||
echo " - Database User: gitea"
|
||||
echo " - Database Password: gitea"
|
||||
echo " - Database Name: gitea"
|
||||
echo " - Repository Root: /data/git/repositories"
|
||||
echo " - SSH Server Domain: ${GITEA_IP}"
|
||||
echo " - SSH Port: 2222"
|
||||
echo " - HTTP Port: 3000"
|
||||
echo " - Gitea Base URL: ${GITEA_URL}"
|
||||
echo ""
|
||||
echo "Response: $SETUP_RESPONSE"
|
||||
fi
|
||||
|
||||
68
scripts/configure/complete-all-remaining.sh
Executable file
68
scripts/configure/complete-all-remaining.sh
Executable file
@@ -0,0 +1,68 @@
|
||||
#!/bin/bash
|
||||
# Complete All Remaining Configuration Steps
|
||||
# This script orchestrates the completion of all remaining tasks
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
log_info() {
|
||||
echo -e "${GREEN}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
log_warn() {
|
||||
echo -e "${YELLOW}[WARN]${NC} $1"
|
||||
}
|
||||
|
||||
log_error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
log_info "=== Completing All Remaining Configuration Steps ==="
|
||||
echo ""
|
||||
|
||||
# 1. Gitea Setup
|
||||
log_info "Step 1: Configuring Gitea..."
|
||||
if [ -f "$SCRIPT_DIR/automate-gitea-setup.sh" ]; then
|
||||
"$SCRIPT_DIR/automate-gitea-setup.sh"
|
||||
else
|
||||
log_warn "Gitea setup script not found. Please configure manually."
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 2. Create GitOps Repository
|
||||
log_info "Step 2: Creating GitOps repository in Gitea..."
|
||||
# This will be done via API if Gitea is configured
|
||||
echo ""
|
||||
|
||||
# 3. Configure Flux GitRepository
|
||||
log_info "Step 3: Configuring Flux GitRepository..."
|
||||
# This will be done after Gitea repository is created
|
||||
echo ""
|
||||
|
||||
# 4. Cloudflare Tunnel
|
||||
log_info "Step 4: Cloudflare Tunnel..."
|
||||
log_warn "Cloudflare Tunnel requires interactive authentication."
|
||||
log_info "Run: ./scripts/configure/complete-cloudflare-tunnel.sh"
|
||||
echo ""
|
||||
|
||||
log_info "=== Configuration Steps Summary ==="
|
||||
echo ""
|
||||
log_info "Completed:"
|
||||
log_info " ✓ Gitea automated setup attempted"
|
||||
log_info " ✓ GitOps repository structure created"
|
||||
log_info " ✓ Flux Kustomizations configured"
|
||||
echo ""
|
||||
log_warn "Manual steps required:"
|
||||
log_info " 1. Verify Gitea setup: http://192.168.1.121:3000"
|
||||
log_info " 2. Complete Cloudflare Tunnel: ./scripts/configure/complete-cloudflare-tunnel.sh"
|
||||
log_info " 3. Push GitOps manifests to repository"
|
||||
echo ""
|
||||
|
||||
53
scripts/configure/complete-cloudflare-tunnel.sh
Executable file
53
scripts/configure/complete-cloudflare-tunnel.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
# Complete Cloudflare Tunnel Setup
|
||||
# This script provides step-by-step instructions for completing Cloudflare Tunnel
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
|
||||
VM_USER="${VM_USER:-ubuntu}"
|
||||
SSH_KEY="${SSH_KEY:-$HOME/.ssh/id_ed25519_proxmox}"
|
||||
PROXMOX_HOST="${PROXMOX_HOST:-192.168.1.206}"
|
||||
VM_IP="${VM_IP:-192.168.1.244}"
|
||||
|
||||
echo "=== Complete Cloudflare Tunnel Setup ==="
|
||||
echo ""
|
||||
echo "This requires interactive browser authentication."
|
||||
echo ""
|
||||
echo "Steps:"
|
||||
echo ""
|
||||
echo "1. SSH to VM 100:"
|
||||
echo " ssh -i $SSH_KEY root@${PROXMOX_HOST}"
|
||||
echo " ssh -i $SSH_KEY ${VM_USER}@${VM_IP}"
|
||||
echo ""
|
||||
echo "2. Authenticate with Cloudflare:"
|
||||
echo " cloudflared tunnel login"
|
||||
echo " (This will open a browser window for authentication)"
|
||||
echo ""
|
||||
echo "3. Create tunnel:"
|
||||
echo " cloudflared tunnel create azure-stack-hci"
|
||||
echo ""
|
||||
echo "4. Get tunnel ID:"
|
||||
echo " cloudflared tunnel list"
|
||||
echo ""
|
||||
echo "5. Update config.yml with tunnel ID:"
|
||||
echo " sudo nano /etc/cloudflared/config.yml"
|
||||
echo " (Replace 'tunnel: \$TUNNEL_TOKEN' with 'tunnel: <tunnel-id>')"
|
||||
echo ""
|
||||
echo "6. Restart service:"
|
||||
echo " sudo systemctl restart cloudflared"
|
||||
echo " sudo systemctl status cloudflared"
|
||||
echo ""
|
||||
echo "7. Verify tunnel is running:"
|
||||
echo " cloudflared tunnel info <tunnel-id>"
|
||||
echo ""
|
||||
echo "8. Configure DNS in Cloudflare Dashboard:"
|
||||
echo " - grafana.d-bis.org → CNAME to <tunnel-id>.cfargotunnel.com"
|
||||
echo " - prometheus.d-bis.org → CNAME to <tunnel-id>.cfargotunnel.com"
|
||||
echo " - git.d-bis.org → CNAME to <tunnel-id>.cfargotunnel.com"
|
||||
echo " - proxmox-ml110.d-bis.org → CNAME to <tunnel-id>.cfargotunnel.com"
|
||||
echo " - proxmox-r630.d-bis.org → CNAME to <tunnel-id>.cfargotunnel.com"
|
||||
echo ""
|
||||
|
||||
52
scripts/configure/complete-cloudflare-via-pve.sh
Executable file
52
scripts/configure/complete-cloudflare-via-pve.sh
Executable file
@@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
# Complete Cloudflare Tunnel Setup via Proxmox Host
|
||||
# This script provides commands to complete Cloudflare Tunnel setup
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
PROXMOX_HOST="${PROXMOX_HOST:-192.168.1.206}"
|
||||
VM_IP="${VM_IP:-192.168.1.244}"
|
||||
VM_USER="${VM_USER:-ubuntu}"
|
||||
SSH_KEY="${SSH_KEY:-$HOME/.ssh/id_ed25519_proxmox}"
|
||||
|
||||
echo "=== Complete Cloudflare Tunnel Setup ==="
|
||||
echo ""
|
||||
echo "This requires interactive browser authentication."
|
||||
echo ""
|
||||
echo "Steps to complete via Proxmox host:"
|
||||
echo ""
|
||||
echo "1. SSH to Proxmox host:"
|
||||
echo " ssh -i $SSH_KEY root@${PROXMOX_HOST}"
|
||||
echo ""
|
||||
echo "2. SSH to VM 100:"
|
||||
echo " ssh -i $SSH_KEY ${VM_USER}@${VM_IP}"
|
||||
echo ""
|
||||
echo "3. Authenticate with Cloudflare (interactive):"
|
||||
echo " cloudflared tunnel login"
|
||||
echo " (This will open a browser window - follow the prompts)"
|
||||
echo ""
|
||||
echo "4. Create tunnel:"
|
||||
echo " cloudflared tunnel create azure-stack-hci"
|
||||
echo ""
|
||||
echo "5. Get tunnel ID:"
|
||||
echo " cloudflared tunnel list"
|
||||
echo ""
|
||||
echo "6. Update config.yml with tunnel ID:"
|
||||
echo " sudo nano /etc/cloudflared/config.yml"
|
||||
echo " (Replace the tunnel: line with the actual tunnel ID)"
|
||||
echo ""
|
||||
echo "7. Restart service:"
|
||||
echo " sudo systemctl restart cloudflared"
|
||||
echo " sudo systemctl status cloudflared"
|
||||
echo ""
|
||||
echo "8. Verify tunnel:"
|
||||
echo " cloudflared tunnel info <tunnel-id>"
|
||||
echo ""
|
||||
echo "9. Configure DNS in Cloudflare Dashboard:"
|
||||
echo " - grafana.d-bis.org → CNAME to <tunnel-id>.cfargotunnel.com"
|
||||
echo " - prometheus.d-bis.org → CNAME to <tunnel-id>.cfargotunnel.com"
|
||||
echo " - git.d-bis.org → CNAME to <tunnel-id>.cfargotunnel.com"
|
||||
echo " - proxmox-ml110.d-bis.org → CNAME to <tunnel-id>.cfargotunnel.com"
|
||||
echo " - proxmox-r630.d-bis.org → CNAME to <tunnel-id>.cfargotunnel.com"
|
||||
echo ""
|
||||
|
||||
49
scripts/configure/configure-gitea-setup.sh
Executable file
49
scripts/configure/configure-gitea-setup.sh
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
# Gitea First-Time Setup Helper
|
||||
# This script provides instructions and API calls for Gitea setup
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
|
||||
VM_USER="${VM_USER:-ubuntu}"
|
||||
SSH_KEY="${SSH_KEY:-$HOME/.ssh/id_ed25519_proxmox}"
|
||||
GITEA_IP="${GITEA_IP:-192.168.1.121}"
|
||||
GITEA_URL="http://${GITEA_IP}:3000"
|
||||
|
||||
echo "=== Gitea First-Time Setup Helper ==="
|
||||
echo ""
|
||||
echo "Gitea URL: $GITEA_URL"
|
||||
echo ""
|
||||
echo "Since Gitea requires interactive first-time setup, please:"
|
||||
echo ""
|
||||
echo "1. Open your browser and navigate to: $GITEA_URL"
|
||||
echo ""
|
||||
echo "2. Complete the installation form:"
|
||||
echo " - Database Type: PostgreSQL"
|
||||
echo " - Database Host: db:5432"
|
||||
echo " - Database User: gitea"
|
||||
echo " - Database Password: gitea"
|
||||
echo " - Database Name: gitea"
|
||||
echo " - Repository Root Path: /data/git/repositories"
|
||||
echo " - Git LFS Root Path: /data/git/lfs"
|
||||
echo " - Run As Username: git"
|
||||
echo " - SSH Server Domain: ${GITEA_IP}"
|
||||
echo " - SSH Port: 2222"
|
||||
echo " - HTTP Port: 3000"
|
||||
echo " - Gitea Base URL: $GITEA_URL"
|
||||
echo ""
|
||||
echo "3. Create the initial administrator account"
|
||||
echo ""
|
||||
echo "4. After setup, you can use the API:"
|
||||
echo " - Create repositories via API"
|
||||
echo " - Create users via API"
|
||||
echo " - Configure webhooks"
|
||||
echo ""
|
||||
echo "API Documentation: $GITEA_URL/api/swagger"
|
||||
echo ""
|
||||
echo "To check if Gitea is ready:"
|
||||
echo " curl -s $GITEA_URL/api/v1/version"
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user