Initial commit: loc_az_hci (smom-dbis-138 excluded via .gitignore)
Some checks failed
Test / test (push) Has been cancelled

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
defiQUG
2026-02-08 09:04:46 -08:00
commit c39465c2bd
386 changed files with 50649 additions and 0 deletions

View 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

View 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 ""

View 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 ""

View 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 ""

View 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 ""