138 lines
6.8 KiB
Bash
Executable File
138 lines
6.8 KiB
Bash
Executable File
cat << "EOF"
|
|
██████╗██╗ ██╗ █████╗ ███╗ ██╗ ██████╗ ███████╗
|
|
██╔════╝██║ ██║██╔══██╗████╗ ██║██╔════╝ ██╔════╝
|
|
██║ ███████║███████║██╔██╗ ██║██║ ███╗█████╗
|
|
██║ ██╔══██║██╔══██║██║╚██╗██║██║ ██║██╔══╝
|
|
╚██████╗██║ ██║██║ ██║██║ ╚████║╚██████╔╝███████╗
|
|
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚══════╝
|
|
|
|
███╗ ███╗ █████╗ ██╗ ██╗███████╗██████╗
|
|
████╗ ████║██╔══██╗██║ ██╔╝██╔════╝██╔══██╗
|
|
██╔████╔██║███████║█████╔╝ █████╗ ██████╔╝
|
|
██║╚██╔╝██║██╔══██║██╔═██╗ ██╔══╝ ██╔══██╗
|
|
██║ ╚═╝ ██║██║ ██║██║ ██╗███████╗██║ ██║
|
|
╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
|
Post-Install Wizard
|
|
|
|
echo "Welcome to the Post-Install Wizard!"
|
|
|
|
EOF
|
|
|
|
# Update services.yaml with domain from .env
|
|
echo "Updating service configurations with domain from .env..."
|
|
|
|
ENV_FILE="/mnt/samsung500/Change Maker Dev/Changemaker/.env"
|
|
SERVICES_FILE="/mnt/samsung500/Change Maker Dev/Changemaker/configs/homepage/services.yaml"
|
|
|
|
if [ -f "$ENV_FILE" ]; then
|
|
DOMAIN=$(grep -E "^DOMAIN=" "$ENV_FILE" | cut -d= -f2)
|
|
|
|
if [ -n "$DOMAIN" ]; then
|
|
echo "Found domain: $DOMAIN"
|
|
|
|
# Update Cloudflare configuration with domain
|
|
CLOUDFLARE_CONFIG="/mnt/samsung500/Change Maker Dev/Changemaker/example.cloudflare.config.yml"
|
|
if [ -f "$CLOUDFLARE_CONFIG" ]; then
|
|
echo "Updating Cloudflare configuration with domain: $DOMAIN"
|
|
|
|
# Create backup of Cloudflare config file
|
|
cp "$CLOUDFLARE_CONFIG" "${CLOUDFLARE_CONFIG}.bak"
|
|
|
|
# Replace example.org with actual domain while preserving sanitized placeholders
|
|
sed -i "s/betteredmonton\.org/$DOMAIN.org/g" "$CLOUDFLARE_CONFIG"
|
|
|
|
echo "✅ Cloudflare configuration updated with domain: $DOMAIN"
|
|
|
|
if [ -f "$SERVICES_FILE" ]; then
|
|
echo "Updating services.yaml with URLs from Cloudflare config..."
|
|
|
|
# Create backup of services file
|
|
cp "$SERVICES_FILE" "${SERVICES_FILE}.bak"
|
|
|
|
# Extract hostname and port mappings from Cloudflare config
|
|
# Format: hostname -> port
|
|
declare -A HOSTNAME_TO_PORT
|
|
|
|
# Parse the Cloudflare config file to extract hostname -> port mappings
|
|
while IFS= read -r line; do
|
|
if [[ $line =~ hostname:\ *([^\ ]+) ]]; then
|
|
hostname="${BASH_REMATCH[1]}"
|
|
# Read the next line which should contain the service URL with port
|
|
read -r service_line
|
|
if [[ $service_line =~ service:\ *http://localhost:([0-9]+) ]]; then
|
|
port="${BASH_REMATCH[1]}"
|
|
HOSTNAME_TO_PORT["$hostname"]="$port"
|
|
fi
|
|
fi
|
|
done < "$CLOUDFLARE_CONFIG"
|
|
|
|
# Now update the services.yaml file
|
|
# Create a temporary file to hold the modified content
|
|
TEMP_FILE=$(mktemp)
|
|
|
|
# Use awk to find and replace href URLs in services.yaml
|
|
awk -v domain="$DOMAIN.org" '
|
|
BEGIN {
|
|
# Add all hostname->port mappings from our associative array
|
|
# These will be populated by the shell via environment variables
|
|
split("", hostnames)
|
|
split("", ports)
|
|
for (i = 1; ENVIRON["HOSTNAME_" i] != ""; i++) {
|
|
hostnames[i] = ENVIRON["HOSTNAME_" i]
|
|
ports[i] = ENVIRON["PORT_" i]
|
|
}
|
|
}
|
|
|
|
{
|
|
# If the line contains an href with a port
|
|
if ($0 ~ /href:.*:[0-9]+\//) {
|
|
for (i in hostnames) {
|
|
# If the line contains the port number, replace with the hostname
|
|
if ($0 ~ ":" ports[i] "/") {
|
|
# Replace the entire URL
|
|
sub(/href:.*/, "href: http://" hostnames[i] "/")
|
|
break
|
|
}
|
|
}
|
|
}
|
|
# Print the line (modified or not)
|
|
print $0
|
|
}' "$SERVICES_FILE" > "$TEMP_FILE"
|
|
|
|
# Export the hostname->port mappings as environment variables for awk
|
|
idx=1
|
|
for hostname in "${!HOSTNAME_TO_PORT[@]}"; do
|
|
export "HOSTNAME_$idx=$hostname"
|
|
export "PORT_$idx=${HOSTNAME_TO_PORT[$hostname]}"
|
|
((idx++))
|
|
done
|
|
|
|
# Replace the original file with our modified version
|
|
mv "$TEMP_FILE" "$SERVICES_FILE"
|
|
|
|
# Clean up environment variables
|
|
for ((i=1; i<=idx; i++)); do
|
|
unset "HOSTNAME_$i" "PORT_$i"
|
|
done
|
|
|
|
echo "✅ Services configuration updated with hostnames from Cloudflare config"
|
|
else
|
|
echo "❌ Services file not found: $SERVICES_FILE"
|
|
fi
|
|
else
|
|
echo "❌ Cloudflare config file not found: $CLOUDFLARE_CONFIG"
|
|
fi
|
|
else
|
|
echo "❌ DOMAIN value not found in .env file"
|
|
fi
|
|
else
|
|
echo "❌ .env file not found: $ENV_FILE"
|
|
fi
|
|
|
|
# Pull Gemma3 model from Ollama
|
|
docker exec -it ollama ollama pull gemma3
|
|
|
|
# Inform users about setting up OpenWebUI with Ollama
|
|
echo "✅ Now you can visit OpenWebUI at http://$DOMAIN:${OPEN_WEBUI_PORT:-3005} and connect it to Ollama"
|
|
echo " Configure OpenWebUI to use the Ollama API at: http://ollama:11435"
|