From 019806de21696ffef2c0d3c37f2bad064065e103 Mon Sep 17 00:00:00 2001 From: Bumblebee Date: Sun, 26 Apr 2026 06:26:08 +0200 Subject: [PATCH] Add headless Local REST API plugin installer --- install-local-rest-api.sh | 90 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100755 install-local-rest-api.sh diff --git a/install-local-rest-api.sh b/install-local-rest-api.sh new file mode 100755 index 0000000..71e4c01 --- /dev/null +++ b/install-local-rest-api.sh @@ -0,0 +1,90 @@ +#!/bin/bash +# Install Local REST API plugin headless (no GUI needed) +# This manually installs the plugin files and generates API key + +set -e + +VAULT_PATH="/workspace/second-brain" +PLUGIN_DIR="$VAULT_PATH/.obsidian/plugins/obsidian-local-rest-api" +API_KEY=$(openssl rand -hex 32) + +echo "📡 Installing Local REST API plugin (headless)..." + +# Create plugin directory +mkdir -p "$PLUGIN_DIR" + +# Download latest plugin release from GitHub +RELEASE_URL="https://github.com/coddingtonbear/obsidian-local-rest-api/releases/latest/download" + +echo "Downloading plugin files..." +cd "$PLUGIN_DIR" + +# Download manifest +curl -s -L "$RELEASE_URL/manifest.json" -o manifest.json +echo "✓ manifest.json" + +# Download main.js +curl -s -L "$RELEASE_URL/main.js" -o main.js +echo "✓ main.js" + +# Download styles.css (if available) +curl -s -L "$RELEASE_URL/styles.css" -o styles.css 2>/dev/null || echo "✓ styles.css (optional, skipped)" + +# Create data.json with plugin settings and API key +cat > data.json << EOF +{ + "api_key": "$API_KEY", + "allow_origins": "*", + "port": 27123 +} +EOF +echo "✓ data.json (with API key)" + +# Enable plugin in Obsidian config +COMMUNITY_PLUGINS_FILE="$VAULT_PATH/.obsidian/community-plugins.json" +if [ ! -f "$COMMUNITY_PLUGINS_FILE" ]; then + echo '[]' > "$COMMUNITY_PLUGINS_FILE" +fi + +# Add plugin to enabled list +python3 << PYTHON +import json +with open('$COMMUNITY_PLUGINS_FILE', 'r') as f: + plugins = json.load(f) +if 'obsidian-local-rest-api' not in plugins: + plugins.append('obsidian-local-rest-api') + with open('$COMMUNITY_PLUGINS_FILE', 'w') as f: + json.dump(plugins, f, indent=2) +print("✓ Plugin enabled in community-plugins.json") +PYTHON + +# Update .env with API key +ENV_FILE="$VAULT_PATH/.env" +if [ -f "$ENV_FILE" ]; then + # Replace existing key + sed -i "s/^OBSIDIAN_API_KEY=.*/OBSIDIAN_API_KEY=$API_KEY/" "$ENV_FILE" +else + # Create new .env + cat > "$ENV_FILE" << ENVEOF +OBSIDIAN_API_KEY=$API_KEY +OBSIDIAN_BASE_URL=http://127.0.0.1:27123 +OBSIDIAN_VERIFY_SSL=false +OBSIDIAN_ENABLE_CACHE=true +OBSIDIAN_CACHE_REFRESH_INTERVAL_MIN=10 +MCP_TRANSPORT_TYPE=stdio +MCP_LOG_LEVEL=info +ENVEOF +fi +echo "✓ .env updated with API key" + +echo "" +echo "✅ Local REST API plugin installed!" +echo "" +echo "API Key: $API_KEY" +echo "" +echo "Next steps:" +echo "1. Restart Obsidian: sudo systemctl restart obsidian.service" +echo "2. Test MCP: /workspace/second-brain/start-mcp.sh" +echo "" +echo "Verify plugin:" +echo " cat $VAULT_PATH/.obsidian/community-plugins.json"