mirror of
				https://github.com/datahub-project/datahub.git
				synced 2025-10-31 18:59:23 +00:00 
			
		
		
		
	 04d0a50118
			
		
	
	
		04d0a50118
		
			
		
	
	
	
	
		
			
			Co-authored-by: Esteban Gutierrez <esteban.gutierrez@acryl.io> Co-authored-by: Chris Collins <chriscollins3456@gmail.com>
		
			
				
	
	
	
		
			3.8 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			3.8 KiB
		
	
	
	
	
	
	
	
DataHub Base Path Configuration
This document describes how to configure DataHub to run from a custom base path (e.g., /my-app/ instead of /).
Overview
DataHub now supports serving from a custom base path, allowing you to:
- Serve DataHub from a subdirectory (e.g., https://company.com/datahub/)
- Deploy multiple DataHub instances on the same domain
- Integrate DataHub behind reverse proxies with path-based routing
Configuration
Environment Variables
Set the following environment variable to configure the base path:
export DATAHUB_BASE_PATH="/my-app"
Important Notes:
- The base path should start with /but not end with/
- Examples: /datahub,/my-app,/tools/datahub
- Leave empty or unset for root path deployment
Component Configuration
The base path configuration affects three main components:
1. Frontend (datahub-web-react)
The frontend determines the base path using multiple detection methods (in priority order):
- 
Environment Variable (highest priority): # Set in .env file or environment REACT_APP_BASE_PATH=/my-app
- 
Server Configuration (fetched from /configendpoint):- The React app fetches base path from the backend's configuration
- Most reliable for production deployments
 
- 
URL Analysis (fallback): - Analyzes current URL to detect base path
- Used when server config is unavailable
 
Development Configuration:
# Method 1: Environment variable (recommended for development)
echo "REACT_APP_BASE_PATH=/my-app" >> .env
yarn start  # Development server at http://localhost:3000/my-app
# Method 2: Using Vite preview (for testing production builds)
yarn build
npx vite preview --port 3001  # Uses base path from REACT_APP_BASE_PATH
# Accessible at: http://localhost:3001/my-app
# Method 3: Override base path via command line
npx vite preview --port 3001 --base /custom-path
Production Behavior:
- Automatically fetches base path from server configuration
- Falls back to URL detection if server config unavailable
- Provides console warnings to help with debugging
2. DataHub Frontend Service (Play Framework)
The Play Framework application supports base path through:
- datahub.basePathconfiguration in- application.conf
- play.http.contextfor Play Framework native support
- Environment variable: DATAHUB_BASE_PATH
3. Metadata Service (Spring Boot)
The metadata service (GMS) supports base path through:
- server.servlet.context-pathin- application.yaml
- Environment variable: DATAHUB_BASE_PATH
Deployment Examples
Docker Compose
version: "3.8"
services:
  datahub-frontend:
    environment:
      - DATAHUB_BASE_PATH=/datahub
	  - PLAY_HTTP_CONTEXT=/datahub
  datahub-gms:
    environment:
      - DATAHUB_BASE_PATH=/datahub
Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
  name: datahub-frontend
spec:
  template:
    spec:
      containers:
        - name: datahub-frontend
          env:
            - name: DATAHUB_BASE_PATH
              value: "/datahub"
            - name: DATAHUB_GMS_BASE_PATH
              value: "/datahub"
            - name: PLAY_HTTP_CONTEXT
              value: "/datahub"
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: datahub-gms
spec:
  template:
    spec:
      containers:
        - name: datahub-frontend
          env:
            - name: DATAHUB_BASE_PATH
              value: "/datahub"
            - name: DATAHUB_GMS_BASE_PATH
              value: "/datahub"
Limitations
- Base path must be consistent across all DataHub components
- Changing base path requires restat of GMS and front end deployments.
- Testing of multiple DataHub environments served by the same URL, e.g. http://example.com/datahub1, http://example.com/datahub2, hasn't been extensively validated.