75 lines
3.4 KiB
YAML
75 lines
3.4 KiB
YAML
# ==============================================================================
|
|||
|
|
# MERICA STANDALONE APPLIANCE — DOCKER COMPOSE CONFIGURATION
|
||
|
|
# ==============================================================================
|
||
|
|
# Clean, ultra-lightweight standalone container running strictly MERICA:
|
||
|
|
# - Unified Nginx Reverse Proxy + ReactFlow Canvas UI + FastAPI Modular Backend
|
||
|
|
# - Port: 14000 (Internal loopback 127.0.0.1:8000)
|
||
|
|
# - Zero Airflow containers inside (Connects to your External Airflow cluster)
|
||
|
|
# - Zero PostgreSQL MetaDB inside (Connects to your External Lakehouse DB)
|
||
|
|
# - Pre-seeded Starter Pipelines mounted to guarantee DAGs list appears instantly
|
||
|
|
# ==============================================================================
|
||
|
|
|
||
|
|
version: "3.8"
|
||
|
|
|
||
|
|
services:
|
||
|
|
merica:
|
||
|
|
build: .
|
||
|
|
image: ${MERICA_IMAGE:-registry.sicabe.com/merica:1.0.0}
|
||
|
|
container_name: merica-appliance
|
||
|
|
restart: always
|
||
|
|
ports:
|
||
|
|
- "${MERICA_PORT:-14000}:80"
|
||
|
|
extra_hosts:
|
||
|
|
- "host.docker.internal:host-gateway"
|
||
|
|
environment:
|
||
|
|
# 1. External Apache Airflow Connectivity
|
||
|
|
- AIRFLOW_WEB_URL=${AIRFLOW_WEB_URL:-http://host.docker.internal:14080}
|
||
|
|
- AIRFLOW_API_URL=${AIRFLOW_API_URL:-http://host.docker.internal:14080}
|
||
|
|
|
||
|
|
# 2. Pipeline SSOT Directories (Mounted Starter / Git Repository)
|
||
|
|
- AIRFLOW_CONFIGS_DIR=/app/merica-pipelines/configs
|
||
|
|
- AIRFLOW_METADATA_DIR=/app/merica-pipelines/metadata
|
||
|
|
- AIRFLOW_DBT_DIR=/app/merica-pipelines/dbt
|
||
|
|
|
||
|
|
# 3. External PostgreSQL Database (Introspection & Airflow MetaDB)
|
||
|
|
- POSTGRES_HOST=${POSTGRES_HOST:-host.docker.internal}
|
||
|
|
- POSTGRES_PORT=${POSTGRES_PORT:-14432}
|
||
|
|
- POSTGRES_DB=${POSTGRES_DB:-dlh_lakehouse}
|
||
|
|
- POSTGRES_USER=${POSTGRES_USER:-dlh_user}
|
||
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-dlh_password}
|
||
|
|
|
||
|
|
# 4. Storage & MinIO S3 Lakehouse (Optional External)
|
||
|
|
- MINIO_ENDPOINT=${MINIO_ENDPOINT:-host.docker.internal:14096}
|
||
|
|
- MINIO_ROOT_USER=${MINIO_ROOT_USER:-minio_admin}
|
||
|
|
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD:-minio_password}
|
||
|
|
|
||
|
|
# 5. Security & Authentication
|
||
|
|
- SECRET_KEY=${SECRET_KEY:-merica-secret-key-dlh-12345678901234567890123456789012}
|
||
|
|
- MERICA_ADMIN_USERNAME=${MERICA_ADMIN_USERNAME:-admin}
|
||
|
|
- MERICA_ADMIN_PASSWORD=${MERICA_ADMIN_PASSWORD:-admin}
|
||
|
|
|
||
|
|
# 6. External Keycloak IAM & SSO (Optional)
|
||
|
|
- KEYCLOAK_URL=${KEYCLOAK_URL:-http://host.docker.internal:14180}
|
||
|
|
- KEYCLOAK_REALM=${KEYCLOAK_REALM:-merica}
|
||
|
|
- KEYCLOAK_CLIENT_ID=${KEYCLOAK_CLIENT_ID:-merica-app}
|
||
|
|
|
||
|
|
# 7. Metadata Governance (Optional OpenMetadata)
|
||
|
|
- OPENMETADATA_HOST=${OPENMETADATA_HOST:-http://host.docker.internal:14585}
|
||
|
|
- OPENMETADATA_JWT_TOKEN=${OPENMETADATA_JWT_TOKEN:-}
|
||
|
|
- ENABLE_OPENMETADATA_SYNC=${ENABLE_OPENMETADATA_SYNC:-false}
|
||
|
|
- GOVERNANCE_DOMAIN=${GOVERNANCE_DOMAIN:-Lingkungan Hidup & Kehutanan}
|
||
|
|
- GOVERNANCE_OWNER_TEAM=${GOVERNANCE_OWNER_TEAM:-de_team_dlh}
|
||
|
|
- GOVERNANCE_OWNER_NAME=${GOVERNANCE_OWNER_NAME:-Data Engineering DLH}
|
||
|
|
- GOVERNANCE_TIER=${GOVERNANCE_TIER:-Tier.Tier1}
|
||
|
|
- GOVERNANCE_CERTIFICATION=${GOVERNANCE_CERTIFICATION:-Certification.Gold}
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
# PENTING: Mount folder pipeline starter / Git SSOT agar DAGs list langsung muncul
|
||
|
|
- ${PIPELINES_DIR:-./pipelines}:/app/merica-pipelines
|
||
|
|
- merica_storage:/app/storage
|
||
|
|
- merica_data:/app/data
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
merica_storage:
|
||
|
|
merica_data:
|