π 100% Pure Python Web Application
Control webhooks with a cyberpunk-styled interface β No JavaScript, No Build Tools, No Complexity
GitHub Β· Documentation Β· Issues
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. π
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. |
streamlit run app.py
# Open browser β Click button β Done β
# Upload files? Deploy? Modify?
# All pure Python. No build steps.π Simple. Beautiful. Pure. |
Real-time monitoring interface with webhook status, automation flows, and system metrics
Intuitive chat panel for sending messages, uploading files, and receiving AI responses
Beautiful display of automation results with real-time updates and response formatting
Full Demo Video - See the entire workflow in action (1 minute walkthrough)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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) β
βββββββββββββββββββββββββ
β
Docker >= 20.x + Docker Compose >= 2.x
(or Python 3.9+ for local development)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 URLsCHAT_WEBHOOK=https://n8n.yourdomain.com/webhook/chat
MONITOR_WEBHOOK=https://n8n.yourdomain.com/webhook/status
WEBHOOK_URL=https://n8n.yourdomain.com/webhook/customWith Docker (Recommended):
docker compose up -d
# App ready at http://localhost:8502Or Local Python:
pip install streamlit requests pandas pillow
streamlit run app.py --server.port 8502Open http://localhost:8502 and start controlling webhooks
{
"chatInput": "Hello, analyze my data",
"sessionId": "dynamicdev_root",
"file_data": "<base64-encoded>",
"file_name": "report.pdf",
"file_type": "application/pdf"
}{
"output": "Analysis complete: 15 records processed",
"ai_file": "https://example.com/chart.png"
}| Platform | Support |
|---|---|
| n8n | β Native |
| Make | β Works |
| Zapier | β Works |
| FastAPI | β Works |
| Any HTTP | β Works |
| Component | Tech |
|---|---|
| Language | Python 3.9+ |
| UI Framework | Streamlit |
| HTTP | requests |
| Data | pandas |
| Container | Docker + Docker Compose |
# β
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.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)
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-netPort Mapping:
8502β UI-Mid-Controller (this)5678β n8n (optional)8501β Other Streamlit apps (optional)
β
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" >> .gitignorepython -m venv venv
source venv/bin/activate
pip install -r requirements.txt
streamlit run app.py --server.port 8502Streamlit auto-reloads on code changes. Just save and refresh.
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.
UI β Send message β n8n β LLM β Display response
UI β Monitor button β Check status β Show metrics
UI β Upload file β n8n process β Return results
UI β Message + file β Backend β Chat history
- Open an issue
- Fork & clone
- Create feature branch:
git checkout -b feature/amazing - Commit:
git commit -m 'Add amazing feature' - Push:
git push origin feature/amazing - Open PR
MIT License β See LICENSE for details
π 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
βββββββββββββββββββββββββββββββββββββββββββββββββ
β Built by dynamicdev_official β
β β
β github.com/dynamicdev-official β
β support@dynamicdev.asia β
β james.dynamicdev@gmail.com β
β β
β Made with love in Bangkok, Thailand β
βββββββββββββββββββββββββββββββββββββββββββββββββ
Powered by:


