Skip to content

dynamicdev-official/UI-Mid-Controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ UI-Mid-Controller

UI-Mid-Controller Logo

🐍 100% Pure Python Web Application
Control webhooks with a cyberpunk-styled interface β€” No JavaScript, No Build Tools, No Complexity


Python Streamlit Docker n8n License

GitHub Β· Documentation Β· Issues


⚑ What's This?

Think of UI-Mid-Controller as your webhook command center β€” a sleek, cyberpunk-styled dashboard built entirely in Python that lets you:

βœ… Trigger webhooks visually β€” No curl commands, no API testing tools
βœ… Monitor automation flows β€” Real-time status from n8n, Make, or custom endpoints
βœ… Manage AI agents β€” Send prompts, get responses, display results instantly
βœ… Chat interface β€” Built-in message threading + file upload support
βœ… Deploy anywhere β€” Works on Linux, macOS, Windows + Docker

The catch? Zero JavaScript. Zero npm. Zero build complexity. Just Python all the way down. 🐍


🎬 Why Build This?

Before UI-Mid-Controller

curl -X POST https://n8n.example.com/webhook \
  -H "Content-Type: application/json" \
  -d '{"message":"hello"}'

# Want UI? Learn React/Vue
# Want to deploy? npm install...
# Want to modify? TypeScript + webpack...

😀 Clunky. Slow. Complex.

With UI-Mid-Controller

streamlit run app.py

# Open browser β†’ Click button β†’ Done βœ“
# Upload files? Deploy? Modify?
# All pure Python. No build steps.

😎 Simple. Beautiful. Pure.


πŸ“Έ Screenshots

Dashboard Monitor

Dashboard Screenshot

Real-time monitoring interface with webhook status, automation flows, and system metrics

AI Chat Interface

Chat Interface

Intuitive chat panel for sending messages, uploading files, and receiving AI responses

Processed Results Display

Processed Results

Beautiful display of automation results with real-time updates and response formatting


πŸŽ₯ Demo Video

Watch Demo Video

Full Demo Video - See the entire workflow in action (1 minute walkthrough)


πŸ–ΌοΈ Visual Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              Browser (localhost:8502)                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚  ╔════════════════════════════════════════════════════╗  β”‚   β”‚
β”‚  β”‚  β•‘       AI Chat   β”‚    Monitor  β”‚   Dashboard        β•‘  β”‚   β”‚
β”‚  β”‚  ╠════════════════════════════════════════════════════╣  β”‚   β”‚
β”‚  β”‚  β•‘  Message: "Analyze this data"                      β•‘  β”‚   β”‚
β”‚  β”‚  β•‘  [Upload File] [Send]                              β•‘  β”‚   β”‚
β”‚  β”‚  β•‘  Response:  Analysis complete                      β•‘  β”‚   β”‚
β”‚  β”‚  β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•  β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                          β”‚                                      β”‚
β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                          β”‚
β”‚              β”‚   HTTP POST to n8n    β”‚                          β”‚
β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚  Webhook Platform     β”‚
               β”‚  (n8n / Make / etc)   β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

βœ… Docker >= 20.x + Docker Compose >= 2.x
   (or Python 3.9+ for local development)

1️⃣ Clone & Configure

git clone https://github.com/dynamicdev-official/ui-mid-controller.git
cd ui-mid-controller

cp .env.example .env
nano .env  # Edit with your webhook URLs
CHAT_WEBHOOK=https://n8n.yourdomain.com/webhook/chat
MONITOR_WEBHOOK=https://n8n.yourdomain.com/webhook/status
WEBHOOK_URL=https://n8n.yourdomain.com/webhook/custom

2️⃣ Launch

With Docker (Recommended):

docker compose up -d
# App ready at http://localhost:8502

Or Local Python:

pip install streamlit requests pandas pillow
streamlit run app.py --server.port 8502

3️⃣ Done! πŸŽ‰

Open http://localhost:8502 and start controlling webhooks


πŸ”— Webhook Integration

Request Format

{
  "chatInput": "Hello, analyze my data",
  "sessionId": "dynamicdev_root",
  "file_data": "<base64-encoded>",
  "file_name": "report.pdf",
  "file_type": "application/pdf"
}

Expected Response

{
  "output": "Analysis complete: 15 records processed",
  "ai_file": "https://example.com/chart.png"
}

Compatible Platforms

Platform Support
n8n βœ… Native
Make βœ… Works
Zapier βœ… Works
FastAPI βœ… Works
Any HTTP βœ… Works

🎨 Tech Stack

Component Tech
Language Python 3.9+
UI Framework Streamlit
HTTP requests
Data pandas
Container Docker + Docker Compose

Why Pure Python?

# βœ… No JavaScript bundler complexity
# βœ… No npm dependency hell  
# βœ… No Node.js runtime needed
# βœ… No build/compile step
# βœ… Edit code β†’ Refresh browser β†’ Done

# Just Python. Fast. Clean. Beautiful.

πŸ“ Project Structure

ui-mid-controller/
β”œβ”€β”€ app.py                 # Main Streamlit application
β”œβ”€β”€ docker-compose.yml     # Container orchestration
β”œβ”€β”€ Dockerfile             # Image build definition
β”œβ”€β”€ .env.example           # Environment template
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ README.md
β”œβ”€β”€ LICENSE.md
β”‚
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ images/
β”‚   β”‚   β”œβ”€β”€ ui-mid-controller-logo.jpeg
β”‚   β”‚   β”œβ”€β”€ dashboard-UI-Mid-Controller.png
β”‚   β”‚   β”œβ”€β”€ Chat-UI-Mid-Controller.png
β”‚   β”‚   └── processed-UI-Mid-Controller.png
β”‚   β”‚
β”‚   └── videos/
β”‚       └── demo-UI-Mid-Controller.mp4
β”‚
└── docs/
    └── (future documentation)

🐳 Docker Setup

services:
  ui-mid-controller:
    image: ui-mid-controller:latest
    ports:
      - "8502:8502"
    environment:
      - CHAT_WEBHOOK=https://n8n.example.com/webhook/chat
    volumes:
      - ./:/app
    networks:
      - dynamicdev-net

Port Mapping:

  • 8502 β†’ UI-Mid-Controller (this)
  • 5678 β†’ n8n (optional)
  • 8501 β†’ Other Streamlit apps (optional)

πŸ”’ Security

βœ… Environment-based secrets (no hardcoded URLs)
βœ… HTTPS-only production webhooks
βœ… Request timeouts (30s max)
βœ… Non-root Docker container
βœ… Input validation & sanitization

# Never commit .env file
echo ".env" >> .gitignore

πŸ› οΈ Development

Local Setup

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
streamlit run app.py --server.port 8502

Hot Reload

Streamlit auto-reloads on code changes. Just save and refresh.

Extending Features

Add new functionality in pure Python:

import streamlit as st
import requests

if st.button("Launch"):
    response = requests.post(WEBHOOK_URL, json={"action": "launch"})
    st.success(f"Response: {response.json()}")

No JSX. No TypeScript. No build step. Just Python.


🎯 Use Cases

AI Agent Controller

UI β†’ Send message β†’ n8n β†’ LLM β†’ Display response

Automation Dashboard

UI β†’ Monitor button β†’ Check status β†’ Show metrics

File Processing

UI β†’ Upload file β†’ n8n process β†’ Return results

ChatBot Interface

UI β†’ Message + file β†’ Backend β†’ Chat history


🀝 Contributing

  1. Open an issue
  2. Fork & clone
  3. Create feature branch: git checkout -b feature/amazing
  4. Commit: git commit -m 'Add amazing feature'
  5. Push: git push origin feature/amazing
  6. Open PR

πŸ“ License

MIT License β€” See LICENSE for details


🌟 Share This Project

Social Media Templates

🐍 Just discovered UI-Mid-Controller β€” 100% Pure Python webhook dashboard!

No JavaScript. No npm. No build complexity.
Just beautiful Python code controlling automation workflows.

Perfect for n8n, Make, Zapier integrations.

#Python #Streamlit #Automation #OpenSource #n8n #NoCode

πŸ‘₯ Credits

╔═══════════════════════════════════════════════╗
β•‘  Built by dynamicdev_official                 β•‘
β•‘                                               β•‘
β•‘  github.com/dynamicdev-official               β•‘
β•‘  support@dynamicdev.asia                      β•‘
β•‘  james.dynamicdev@gmail.com                   β•‘
β•‘                                               β•‘
β•‘  Made with love in Bangkok, Thailand          β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Powered by:

  • Streamlit β€” Python web UI
  • n8n β€” Workflow automation
  • Python β€” Best language

πŸ“’ Connect With Us

GitHub Email Website


Made with Python | Deployed with Docker | Powered by Automation

About

πŸš€ UI-Mid-Controller: Pure Python webhook dashboard for n8n, Make & automation platforms. Control webhooks visually without curl commands. Real-time monitoring, AI chat interface, file uploads. Streamlit + Docker. Zero JavaScript. Production-ready. Made by dynamicdev_.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors