chore(F.4e): remove env-based site loading, unify OAuth Clients, update docs
- Remove env-based site discovery from SiteManager and ProjectManager - Unify admin and user OAuth Clients into single role-based page - Update all documentation to reflect DB-based site management - Clean up env.example, README, ARCHITECTURE docs - Improve Projects page empty state with link to My Sites - Remove obsolete env discovery tests Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
117
env.example
117
env.example
@@ -2,7 +2,7 @@
|
||||
# MCP Hub — Environment Configuration
|
||||
# ===================================
|
||||
#
|
||||
# MINIMUM TO START: Just set MASTER_API_KEY and one site below.
|
||||
# MINIMUM TO START: Set MASTER_API_KEY, then add sites via the web dashboard.
|
||||
# Full docs: https://github.com/airano-ir/mcphub/blob/main/docs/getting-started.md
|
||||
#
|
||||
# After editing, run:
|
||||
@@ -49,117 +49,14 @@ DASHBOARD_SESSION_SECRET=
|
||||
# DISABLE_MASTER_KEY_LOGIN=false
|
||||
|
||||
# ============================================
|
||||
# WORDPRESS SITES
|
||||
# SITES
|
||||
# ============================================
|
||||
# Pattern: WORDPRESS_{SITE_ID}_{CONFIG_KEY}
|
||||
# Add as many sites as you want (SITE1, SITE2, SITE3, ...)
|
||||
# Sites are managed via the web dashboard (DB-based).
|
||||
# After starting the server, open the dashboard to add sites:
|
||||
# http://localhost:8000/dashboard
|
||||
#
|
||||
# How to create a WordPress Application Password:
|
||||
# 1. Log into WordPress admin → Users → Your Profile
|
||||
# 2. Scroll to "Application Passwords" section
|
||||
# 3. Enter name "MCP Hub" → click "Add New"
|
||||
# 4. Copy the generated password (format: xxxx xxxx xxxx xxxx)
|
||||
|
||||
WORDPRESS_SITE1_URL=https://your-site.com
|
||||
WORDPRESS_SITE1_USERNAME=admin
|
||||
WORDPRESS_SITE1_APP_PASSWORD=xxxx xxxx xxxx xxxx
|
||||
WORDPRESS_SITE1_ALIAS=mysite
|
||||
|
||||
# Optional: Docker container name for WP-CLI tools (cache flush, transients, etc.)
|
||||
# Find your container name with: docker ps --filter name=wordpress
|
||||
# This lets MCP Hub run wp-cli commands inside your WordPress container.
|
||||
# WORDPRESS_SITE1_CONTAINER=wordpress-container-name
|
||||
|
||||
# Second site example (uncomment to use):
|
||||
# WORDPRESS_SITE2_URL=https://another-site.com
|
||||
# WORDPRESS_SITE2_USERNAME=admin
|
||||
# WORDPRESS_SITE2_APP_PASSWORD=yyyy yyyy yyyy yyyy
|
||||
# WORDPRESS_SITE2_ALIAS=blog
|
||||
|
||||
# ============================================
|
||||
# WORDPRESS ADVANCED (database, bulk, system)
|
||||
# ============================================
|
||||
# Pattern: WORDPRESS_ADVANCED_{SITE_ID}_{CONFIG_KEY}
|
||||
# Provides database operations, bulk operations, and system management.
|
||||
# REQUIRES Docker socket AND container name — all tools use WP-CLI.
|
||||
#
|
||||
# Uses the same credentials as WordPress, but the CONTAINER key is REQUIRED.
|
||||
# WORDPRESS_ADVANCED_SITE1_URL=https://your-site.com
|
||||
# WORDPRESS_ADVANCED_SITE1_USERNAME=admin
|
||||
# WORDPRESS_ADVANCED_SITE1_APP_PASSWORD=xxxx xxxx xxxx xxxx
|
||||
# WORDPRESS_ADVANCED_SITE1_CONTAINER=wordpress-container-name
|
||||
# WORDPRESS_ADVANCED_SITE1_ALIAS=mysite-advanced
|
||||
|
||||
# ============================================
|
||||
# WOOCOMMERCE STORES
|
||||
# ============================================
|
||||
# Pattern: WOOCOMMERCE_{STORE_ID}_{CONFIG_KEY}
|
||||
# WooCommerce is a separate plugin — uses Consumer Key/Secret, not App Passwords.
|
||||
#
|
||||
# Create keys: WooCommerce → Settings → Advanced → REST API → Add Key
|
||||
|
||||
# WOOCOMMERCE_STORE1_URL=https://your-store.com
|
||||
# WOOCOMMERCE_STORE1_CONSUMER_KEY=ck_xxxxx
|
||||
# WOOCOMMERCE_STORE1_CONSUMER_SECRET=cs_xxxxx
|
||||
# WOOCOMMERCE_STORE1_ALIAS=mystore
|
||||
|
||||
# ============================================
|
||||
# OTHER PLUGINS (uncomment to use)
|
||||
# ============================================
|
||||
# All plugins auto-discover their environment variables at startup.
|
||||
# Pattern: {PLUGIN_TYPE}_{INSTANCE_ID}_{CONFIG_KEY}
|
||||
|
||||
# --- Gitea ---
|
||||
# GITEA_REPO1_URL=https://git.example.com
|
||||
# GITEA_REPO1_TOKEN=your_gitea_token
|
||||
# GITEA_REPO1_ALIAS=mygitea
|
||||
|
||||
# --- n8n ---
|
||||
# N8N_INSTANCE1_URL=https://n8n.example.com
|
||||
# N8N_INSTANCE1_API_KEY=your_n8n_api_key
|
||||
# N8N_INSTANCE1_ALIAS=myn8n
|
||||
|
||||
# --- Supabase (Self-Hosted or Cloud) ---
|
||||
# Works with both self-hosted Supabase and supabase.com cloud projects.
|
||||
# For cloud: URL is https://xxxx.supabase.co
|
||||
# For self-hosted: URL is your Kong gateway (e.g., http://your-server:8000)
|
||||
#
|
||||
# SERVICE_ROLE_KEY is required (bypasses RLS, full admin access).
|
||||
# ANON_KEY is optional — if omitted, SERVICE_ROLE_KEY is used for all calls.
|
||||
#
|
||||
# Note: postgres-meta tools (list_tables, execute_sql, get_table_schema, etc.)
|
||||
# require the /pg/ Kong route or a direct META_URL. These tools do NOT work
|
||||
# on supabase.com cloud (postgres-meta is internal only on cloud).
|
||||
# PostgREST/Auth/Storage/Functions tools work on both cloud and self-hosted.
|
||||
#
|
||||
# SUPABASE_PROJECT1_URL=https://xxxx.supabase.co
|
||||
# SUPABASE_PROJECT1_SERVICE_ROLE_KEY=your_service_role_key
|
||||
# SUPABASE_PROJECT1_ANON_KEY=your_anon_key
|
||||
# SUPABASE_PROJECT1_ALIAS=mysupabase
|
||||
#
|
||||
# Optional: direct postgres-meta URL for self-hosted when /pg/ is not via Kong:
|
||||
# SUPABASE_PROJECT1_META_URL=http://localhost:5555
|
||||
#
|
||||
# Optional: Basic Auth for postgres-meta when exposed via a public URL.
|
||||
# Format: username:password — not needed for internal Docker networks or Kong.
|
||||
# SUPABASE_PROJECT1_META_AUTH=admin:secretpassword
|
||||
|
||||
# --- OpenPanel ---
|
||||
# OPENPANEL_INSTANCE1_URL=https://openpanel.example.com
|
||||
# OPENPANEL_INSTANCE1_CLIENT_ID=your_client_id
|
||||
# OPENPANEL_INSTANCE1_CLIENT_SECRET=your_client_secret
|
||||
# OPENPANEL_INSTANCE1_ALIAS=myopenpanel
|
||||
|
||||
# --- Appwrite ---
|
||||
# APPWRITE_PROJECT1_URL=https://appwrite.example.com
|
||||
# APPWRITE_PROJECT1_API_KEY=your_appwrite_api_key
|
||||
# APPWRITE_PROJECT1_PROJECT_ID=your_project_id
|
||||
# APPWRITE_PROJECT1_ALIAS=myappwrite
|
||||
|
||||
# --- Directus ---
|
||||
# DIRECTUS_INSTANCE1_URL=https://directus.example.com
|
||||
# DIRECTUS_INSTANCE1_TOKEN=your_directus_token
|
||||
# DIRECTUS_INSTANCE1_ALIAS=mydirectus
|
||||
# Supported plugins: WordPress, WooCommerce, Supabase, OpenPanel,
|
||||
# Gitea, n8n, Appwrite, Directus, WordPress Advanced
|
||||
|
||||
# ============================================
|
||||
# OAUTH (optional — for ChatGPT/Claude auto-registration)
|
||||
|
||||
Reference in New Issue
Block a user