Skip to content

FlowTech-Lab/FlowTech-AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

49 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ FlowTech-AI: Production AI Stack for Developers

Self-hosted AI infrastructure: Cursor AI assistant + Conversational AI (OpenWebUI) + RAG + Intelligent Automation (n8n)

License Docker Python


🎯 What is FlowTech-AI?

A production-ready, self-hosted AI stack that combines:

  • πŸ€– AI Services: OpenWebUI interface, Qdrant vector DB, n8n automation, Ollama LLM
  • πŸ’» Cursor Integration: MCP-Qdrant for AI-enhanced coding with context awareness
  • πŸ“š Knowledge Base: RAG with document upload in OpenWebUI
  • πŸ”„ Intelligent Workflows: n8n automation platform
  • πŸš€ One-command deployment: ./init.sh and everything works

✨ Key Features

βœ… Cursor AI Enhancement via Model Context Protocol (MCP)
βœ… OpenWebUI with RAG for document Q&A
βœ… Vector Search with Qdrant (1024-dim embeddings)
βœ… Production-ready Docker Compose stack
βœ… Automated Workflows with n8n orchestration
βœ… Fork-friendly - Clone once, everything works


πŸš€ Quick Start (5 minutes)

# 1. Clone repository
git clone https://github.com/FlowTech-Lab/FlowTech-AI.git
cd FlowTech-AI

# 2. Initialize stack (requires sudo for permissions)
sudo ./init.sh

# βœ… Stack ready! Services available at:
# - OpenWebUI: http://localhost:8081
# - Cursor MCP: http://localhost:8000
# - n8n: http://localhost:5678
# - Qdrant: http://localhost:6333

Full guide: See QUICKSTART.md


πŸ“¦ What's Included?

Core Services

Service Port Description Status
OpenWebUI 8081 AI chat interface with RAG βœ… Production
MCP-Qdrant 8000 Cursor code context (cursor-context) βœ… Production
MCP-Knowledge 8001 Cursor notes search (cursor-knowledge) βœ… Production
n8n 5678 Workflow automation βœ… Production
Qdrant 6333 Vector database βœ… Production
Samba 445 Notes share (SMB) βœ… Production
PostgreSQL 5432 Metadata storage βœ… Production
Redis 6379 Cache & queues βœ… Production
SearxNG 8082 Web search engine βœ… Production
Langfuse 3300 LLM observability βœ… Production

πŸ’» Cursor Integration

Setup (2 minutes)

# 1. Copy MCP config template
cp cursor-mcp-config.json ~/.cursor/mcp.json

# 2. Edit IP (change to your server IP)
nano ~/.cursor/mcp.json
# Replace 192.168.0.246 with your actual IP

# 3. Restart Cursor

# 4. Test
@qdrant store "FlowTech-AI is awesome!"
@qdrant find awesome

What you get:

  • Store code snippets, notes, and context in Qdrant
  • Retrieve information semantically during coding
  • AI-enhanced development with persistent memory

Sync Your Notes Automatically

Sync Markdown notes to Cursor:

# Initial sync
./scripts/sync-notes.sh

# Install hourly auto-sync
./scripts/install-cron.sh

Your Notes/ folder will be automatically synced to Qdrant and searchable in Cursor!

πŸ“– See Notes Sync Guide for details.

Access Notes via Network Share

Edit notes from Windows/Mac/Linux:

# Windows
\\YOUR_SERVER_IP\notes

# Mac/Linux
smb://YOUR_SERVER_IP/notes

# Credentials (generated in .env during init.sh)
Username: admin
Password: Check your .env file (SAMBA_PASSWORD)

Open the share with Obsidian or any text editor to manage your notes!

πŸ“– See Samba Windows Guide for connection help.


πŸ“š OpenWebUI RAG

Upload Documents

  1. Open http://localhost:8081
  2. Create a new chat
  3. Click "Knowledge" button
  4. Upload your documents (PDF, MD, TXT, DOCX, etc.)
  5. Ask questions about your documents!

Example:

User: What does the API documentation say about authentication?
AI: Based on the uploaded API docs, authentication uses JWT tokens...

Supported Formats

  • πŸ“„ PDF, DOCX, TXT, MD
  • πŸ’» Code files (PY, JS, TS, etc.)
  • 🌐 Websites (via URL)

πŸ”§ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   FlowTech-AI Stack                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚  Cursor IDE  │───▢│ MCP-Qdrant   │───▢│  Qdrant  β”‚ β”‚
β”‚  β”‚  (Dev Tool)  β”‚    β”‚  (Port 8000) β”‚    β”‚  Vector  β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚    DB    β”‚ β”‚
β”‚                                           β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚       β”‚
β”‚  β”‚   Browser    │───▢│  OpenWebUI   │────────▢│       β”‚
β”‚  β”‚              β”‚    β”‚  (Port 8081) β”‚         β”‚       β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚       β”‚
β”‚                                                β”‚       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚       β”‚
β”‚  β”‚   n8n Web    │───▢│     n8n      │────────▢│       β”‚
β”‚  β”‚  Interface   β”‚    β”‚  (Port 5678) β”‚         β”‚       β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚       β”‚
β”‚                                                β”‚       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚  β”‚                                                     β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚
β”‚  └─▢│  Redis   β”‚  β”‚ Postgres β”‚  β”‚ SearxNG  β”‚        β”‚
β”‚     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚
β”‚                                                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Data Flow:

  1. Cursor: Store/retrieve code context via MCP β†’ Qdrant
  2. OpenWebUI: Upload docs β†’ RAG β†’ Qdrant β†’ AI answers
  3. n8n: Automate workflows, integrate external APIs

πŸ› οΈ Advanced Usage

Custom Workflows (n8n)

  1. Open http://localhost:5678
  2. Login with credentials from .env file
  3. Import workflow from SRC/FlowTech-AI-Complete-Workflow.json
  4. Customize for your needs

Embedding Models

Default: bge-m3:567m (Ollama) - Multilingual, 1024 dimensions

Change model:

# Edit .env
RAG_EMBEDDING_MODEL=bge-large:latest  # or another model

# Restart
docker compose restart openwebui

Extend with Obsidian

Want to sync personal notes? Check the Notes Templates in Notes/_Templates/:

  • vm-template.md - For virtual machines
  • server-template.md - For servers
  • domain-template.md - For domains

For automated sync, see companion repo: Flow-Notes-AI


πŸ“– Documentation


🀝 Contributing

Contributions are welcome! Please:

  1. Fork the repo
  2. Create a feature branch
  3. Test your changes with ./init.sh
  4. Submit a pull request

πŸ“„ License

MIT License - See LICENSE for details


πŸ™ Acknowledgments

  • OpenWebUI - Amazing AI interface
  • Cursor - Best AI-powered IDE
  • n8n - Powerful automation platform
  • Qdrant - High-performance vector database
  • Ollama - Local LLM inference

πŸ”— Links


Made with ❀️ by the FlowTech-Lab community

About

Assistant IA FlowTech

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published