Sign inSign up

lory1990/mfe-orchestrator

By lory1990

•Updated about 1 month ago

Centralized service to manage microfrontends via UI across environments. šŸš€

Image
Integration & delivery
Developer tools
Web analytics
0

9.7K

lory1990/mfe-orchestrator repository overview

A centralized service for managing and orchestrating microfrontends across multiple environments. šŸš€ This project provides a JSON-based configuration system that describes microfrontends, including their versions, and enables independent deployment and management without requiring a complete frontend rebuild.

The service supports multiple environments (DEV, UAT, PROD, etc.) and maintains separate configurations for each environment, allowing for different versions of microfrontends to be deployed in different stages of development. šŸ“¦

Features šŸŽÆ šŸ“ JSON-based configuration of microfrontends with version management 🌐 Multi-environment support (DEV, UAT, PROD, etc.) šŸš€ Independent deployment of microfrontends šŸ“‹ Environment-specific configurations šŸ”Œ Integration with various microfrontend technologies (coming soon)

⁠Environment variables šŸ”§
VariableDefault ValueDescription
FRONTEND_URLhttp://localhost:3000URL of the frontend application.
REGISTRATION_ALLOWEDfalseIf true, allows new user registration.
ALLOW_EMBEDDED_LOGINtrueIf true, enables the login system within the application.
MICROFRONTEND_HOST_FOLDER/var/microfrontendsFolder containing the host microfrontends.
NOSQL_DATABASE_URLmongodb://localhost:27017/microfrontend-orchestratorMongoDB database connection URL.
REDIS_URLredis://localhost:6379Redis server connection URL.
REDIS_PASSWORD(empty)Password for Redis access (if set).
EMAIL_SMTP_HOSTsmtp.example.comSMTP server host for sending emails.
EMAIL_SMTP_PORT587SMTP server port (e.g., 587 for TLS).
EMAIL_SMTP_SECUREfalseIf true, uses secure connection (SSL/TLS).
EMAIL_SMTP_USER(empty)Username for SMTP authentication.
EMAIL_SMTP_PASSWORD(empty)Password for SMTP authentication.
EMAIL_SMTP_FROM[email protected]Sender email address.
JWT_SECRETyour-secret-key-hereSecret key for JWT generation and validation.
AUTH0_DOMAIN(empty)Auth0 tenant domain.
AUTH0_CLIENT_ID(empty)Client ID of the Auth0 application.
AUTH0_CLIENT_SECRET(empty)Client secret of the Auth0 application.
AUTH0_AUDIENCE(empty)API Audience configured in Auth0.
AUTH0_SECRET(empty)Secret for Auth0 token validation.
AZURE_ENTRAID_TENANT_ID(empty)Azure Entra ID tenant ID.
AZURE_ENTRAID_CLIENT_ID(empty)Client ID of the registered Azure application.
AZURE_ENTRAID_CLIENT_SECRET(empty)Client secret of the registered Azure application.
AZURE_ENTRAID_REDIRECT_URI(empty)Redirect URI for Azure authentication.
AZURE_ENTRAID_AUTHORITYhttps://login.microsoftonline.comAuthentication authority URL.
AZURE_ENTRAID_SCOPESopenid profile emailRequired scopes during login.
AZURE_ENTRAID_API_AUDIENCE(empty)Protected API identifier in Azure.
GOOGLE_CLIENT_ID(empty)Client ID for Google OAuth authentication.
GOOGLE_CLIENT_SECRET(empty)Client secret for Google OAuth authentication.
GOOGLE_REDIRECT_URI(empty)Redirect URI for Google OAuth.
GOOGLE_AUTH_SCOPEhttps://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profileRequired scopes to get Google email and profile.
ALLOWED_ORIGINS(empty)List of allowed URLs for cross-origin requests.
LOG_LEVELinfo (debug/info/warn/error)Logging level.
⁠Quick start with docker compose
services:
  mongodb:
    image: mongo:latest
    container_name: mongodb
    restart: always
    ports:
      - '27017:27017'
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example
      MONGO_INITDB_DATABASE: microfrontend-orchestrator
    volumes:
      - mongodb_data:/data/db
    healthcheck:
      test: ["CMD", "mongosh", "--eval", "'db.runCommand({ ping: 1 })'"]
      interval: 10s
      timeout: 5s
      retries: 5

  redis:
    image: redis:alpine
    container_name: redis
    restart: always
    ports:
      - '6379:6379'
    volumes:
      - redis_data:/data
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

  mfe-orchestrator:
    image: lory1990/mfe-orchestrator:latest
    container_name: mfe-orchestrator
    restart: always
    ports:
      - '8080:80'
    environment:
      NOSQL_DATABASE_URL: mongodb://root:example@mongodb:27017
      REDIS_URL: redis://redis:6379
      MICROFRONTEND_HOST_FOLDER: /upload-microfrontends
    volumes:
      - upload_microfrontends:/upload-microfrontends
    depends_on:
      - mongodb
      - redis

volumes:
  mongodb_data:
  redis_data:
  upload_microfrontends:

Tag summary

Content type

Image

Digest

sha256:f7cd4bfd4…

Size

181.4 MB

Last updated

about 1 month ago

docker pull lory1990/mfe-orchestrator