Repository renamed and all Komodo resources configured via API: API Changes (completed): - ✓ Renamed Gitea repository: komodo-demo → komodo - ✓ Created Build resource: komodo-build - ✓ Created Stack resource: komodo-stack (server: syn01) - ✓ Created Sync resource: komodo-sync - ✓ Updated webhooks with new resource names File Updates: - Updated all references from komodo-demo to komodo - Removed "demo" tags from resources - Updated package.json, docker-compose.yml, app.js - Updated documentation and setup scripts Integration fully configured via APIs!
159 lines
4.9 KiB
Bash
Executable File
159 lines
4.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Komodo Setup Script for komodo integration
|
|
# Run this script on a machine that has network access to Komodo
|
|
|
|
set -e
|
|
|
|
# Configuration
|
|
KOMODO_HOST="${KOMODO_HOST:-komodo.internal}"
|
|
KOMODO_PORT="${KOMODO_PORT:-9120}"
|
|
KOMODO_URL="http://${KOMODO_HOST}:${KOMODO_PORT}"
|
|
|
|
# Check for required environment variables
|
|
if [ -z "$KOMODO_KEY" ] || [ -z "$KOMODO_SECRET" ]; then
|
|
echo "Error: KOMODO_KEY and KOMODO_SECRET environment variables must be set"
|
|
exit 1
|
|
fi
|
|
|
|
echo "======================================"
|
|
echo "Komodo Setup Script"
|
|
echo "======================================"
|
|
echo "Komodo URL: $KOMODO_URL"
|
|
echo ""
|
|
|
|
# Function to make Komodo API calls
|
|
komodo_api() {
|
|
local method=$1
|
|
local endpoint=$2
|
|
local data=$3
|
|
|
|
curl -s -X POST "${KOMODO_URL}/${endpoint}/${method}" \
|
|
-H "Content-Type: application/json" \
|
|
-H "x-api-key: ${KOMODO_KEY}" \
|
|
-H "x-api-secret: ${KOMODO_SECRET}" \
|
|
-d "$data"
|
|
}
|
|
|
|
# Test connection
|
|
echo "Testing connection to Komodo..."
|
|
VERSION=$(komodo_api "GetVersion" "read" '{}')
|
|
if [ $? -eq 0 ]; then
|
|
echo "✓ Connected to Komodo: $VERSION"
|
|
else
|
|
echo "✗ Failed to connect to Komodo at $KOMODO_URL"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Step 1: Configure Git Provider
|
|
echo "Step 1: Configuring Gitea provider..."
|
|
# Note: Git provider configuration typically done via config file or UI
|
|
# The API might not support adding git providers directly
|
|
# This will be done through Resource Sync or config file
|
|
echo " → Git providers are configured via core.config.toml"
|
|
echo " → See komodo-gitea.config.toml for the configuration to add"
|
|
echo ""
|
|
|
|
# Step 2: List existing servers
|
|
echo "Step 2: Checking for available servers..."
|
|
SERVERS=$(komodo_api "ListServers" "read" '{}')
|
|
echo "$SERVERS" | jq -r '.[] | " - \(.name) (\(.id))"' 2>/dev/null || echo " $SERVERS"
|
|
echo ""
|
|
echo "Note: You'll need a server ID for the Stack resource."
|
|
echo "If no servers are listed, add one in Komodo UI or config."
|
|
echo ""
|
|
|
|
# Step 3: Create Build resource
|
|
echo "Step 3: Creating Build resource 'komodo-build'..."
|
|
BUILD_CONFIG='{
|
|
"name": "komodo-build",
|
|
"description": "Build Docker image for komodo app",
|
|
"tags": ["demo", "gitea"],
|
|
"config": {
|
|
"git_provider": "gitea.straymoog.xyz",
|
|
"git_account": "stray",
|
|
"repo": "stray/komodo",
|
|
"branch": "main",
|
|
"build_path": ".",
|
|
"dockerfile_path": "Dockerfile"
|
|
}
|
|
}'
|
|
|
|
BUILD_RESULT=$(komodo_api "CreateBuild" "write" "$BUILD_CONFIG" 2>&1)
|
|
if echo "$BUILD_RESULT" | grep -q "error\|Error"; then
|
|
echo " ⚠ Build might already exist or error occurred:"
|
|
echo " $BUILD_RESULT"
|
|
else
|
|
echo " ✓ Build resource created"
|
|
fi
|
|
echo ""
|
|
|
|
# Step 4: Create Stack resource
|
|
echo "Step 4: Creating Stack resource 'komodo-stack'..."
|
|
echo " → This requires a valid server_id"
|
|
echo " → Skipping automatic creation - please create via UI or update this script with server_id"
|
|
echo ""
|
|
# STACK_CONFIG='{
|
|
# "name": "komodo-stack",
|
|
# "description": "Deploy komodo app using docker-compose",
|
|
# "tags": ["demo", "gitea"],
|
|
# "config": {
|
|
# "server_id": "YOUR_SERVER_ID_HERE",
|
|
# "git_provider": "gitea.straymoog.xyz",
|
|
# "git_account": "stray",
|
|
# "repo": "stray/komodo",
|
|
# "branch": "main",
|
|
# "file_paths": ["docker-compose.yml"]
|
|
# }
|
|
# }'
|
|
# komodo_api "CreateStack" "write" "$STACK_CONFIG"
|
|
|
|
# Step 5: Create Resource Sync
|
|
echo "Step 5: Creating Resource Sync 'komodo-sync'..."
|
|
SYNC_CONFIG='{
|
|
"name": "komodo-sync",
|
|
"description": "Sync Komodo resources from Git",
|
|
"tags": ["demo", "gitea"],
|
|
"config": {
|
|
"git_provider": "gitea.straymoog.xyz",
|
|
"git_account": "stray",
|
|
"repo": "stray/komodo",
|
|
"branch": "main",
|
|
"resource_path": ".komodo",
|
|
"commit_to_repo": false
|
|
}
|
|
}'
|
|
|
|
SYNC_RESULT=$(komodo_api "CreateResourceSync" "write" "$SYNC_CONFIG" 2>&1)
|
|
if echo "$SYNC_RESULT" | grep -q "error\|Error"; then
|
|
echo " ⚠ Sync might already exist or error occurred:"
|
|
echo " $SYNC_RESULT"
|
|
else
|
|
echo " ✓ Resource Sync created"
|
|
echo " → You can now execute the sync to import all resources from .komodo/resources.toml"
|
|
fi
|
|
echo ""
|
|
|
|
echo "======================================"
|
|
echo "Setup Summary"
|
|
echo "======================================"
|
|
echo "Gitea webhooks: ✓ Created (3 webhooks)"
|
|
echo " - Build webhook"
|
|
echo " - Stack deploy webhook"
|
|
echo " - Sync webhook"
|
|
echo ""
|
|
echo "Komodo resources:"
|
|
echo " - Git provider: Configure in core.config.toml"
|
|
echo " - Build: Created (or attempted)"
|
|
echo " - Stack: Manual creation required (needs server_id)"
|
|
echo " - Sync: Created (or attempted)"
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo "1. Add git provider config to core.config.toml (see komodo-gitea.config.toml)"
|
|
echo "2. Restart Komodo core to load git provider"
|
|
echo "3. Execute the Resource Sync to import all resources"
|
|
echo "4. Test by pushing to the Git repository"
|
|
echo ""
|
|
echo "Repository: https://gitea.straymoog.xyz/stray/komodo"
|
|
echo "======================================"
|