Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

96 lines
2.9 KiB
Bash
Raw Normal View History

#!/bin/bash
# Script to start Fuseki and OpenSearch services for OpenMetadata RDF development
set -e
echo "=== Starting RDF Services for OpenMetadata ==="
# Check if running on macOS or Linux
if [[ "$OSTYPE" == "darwin"* ]]; then
echo "Running on macOS - skipping vm.max_map_count setting"
else
# Set vm.max_map_count for OpenSearch (Linux only)
echo "Setting vm.max_map_count for OpenSearch..."
sudo sysctl -w vm.max_map_count=262144 || {
echo "Warning: Could not set vm.max_map_count. OpenSearch might have issues."
echo "Try running: sudo sysctl -w vm.max_map_count=262144"
}
fi
# Load environment variables if .env exists
if [ -f .env ]; then
echo "Loading environment variables from .env..."
export $(grep -v '^#' .env | xargs)
fi
# Use default path if not set
VOLUMES_PATH=${DOCKER_VOLUMES_PATH:-./docker-volumes}
# Create volume directories
echo "Creating volume directories in: $VOLUMES_PATH"
mkdir -p "$VOLUMES_PATH/fuseki/databases" "$VOLUMES_PATH/fuseki/run" "$VOLUMES_PATH/opensearch"
# Set permissions
echo "Setting permissions..."
chmod -R 777 "$VOLUMES_PATH"
# Start Fuseki
echo "Starting Apache Jena Fuseki..."
# Use Rosetta 2 emulation on ARM64 for stain/jena-fuseki:5.0.0
if [[ $(uname -m) == "arm64" ]] || [[ $(uname -m) == "aarch64" ]]; then
echo "Detected ARM64 architecture, using Rosetta 2 emulation..."
docker compose -f docker-compose-fuseki-rosetta.yml up -d
else
docker compose -f docker-compose-fuseki-standalone.yml up -d
fi
# Start OpenSearch
echo "Starting OpenSearch..."
docker compose -f docker-compose-opensearch-standalone.yml up -d
# Wait for services to be healthy
echo "Waiting for services to start..."
sleep 10
# Check Fuseki
echo -n "Checking Fuseki status... "
if curl -s http://localhost:3030/$/ping > /dev/null; then
echo "✓ Fuseki is running"
echo " - Fuseki UI: http://localhost:3030"
echo " - SPARQL endpoint: http://localhost:3030/openmetadata/sparql"
echo " - Login: admin/admin"
else
echo "✗ Fuseki is not responding"
fi
# Check OpenSearch
echo -n "Checking OpenSearch status... "
if curl -s http://localhost:9200/_cluster/health > /dev/null; then
echo "✓ OpenSearch is running"
echo " - OpenSearch API: http://localhost:9200"
echo " - OpenSearch Dashboards: http://localhost:5601"
echo " - No authentication required (security disabled)"
# Show cluster health
echo ""
echo "OpenSearch cluster health:"
curl -s http://localhost:9200/_cluster/health?pretty | head -10
else
echo "✗ OpenSearch is not responding"
fi
echo ""
echo "=== Services Started ==="
echo ""
echo "To stop services:"
echo " docker-compose -f docker-compose-fuseki-standalone.yml down"
echo " docker-compose -f docker-compose-opensearch-standalone.yml down"
echo ""
echo "To view logs:"
echo " docker logs -f fuseki-standalone"
echo " docker logs -f opensearch-standalone"
echo ""
echo "To clean up data:"
echo " rm -rf fuseki-volume/* search-volume/*"