Question-answering chatbot and semantic search for three WordPress sites, on one VPS.
sites served
3
pages and posts indexed
1,500+
visitor questions answered
3,400+
The Challenge
Three content sites needed a chatbot that answers visitor questions from their own content, plus semantic search – without paying a per-seat SaaS fee.
The Approach
n8n workflows ingest and re-index each site's content with separate tokens per site, Qdrant stores the vectors, and a Python Python search API serves the WordPress front ends, with analytics on what visitors ask. Everything runs in Docker Compose behind nginx on one VPS, with memory and CPU limits per service, so hosting stays at a few dollars a month.
Key Features
n8n ingestion and re-index workflows, with a separate ingestion token per site
Qdrant vector store on a persistent volume
Lightweight Python search API (multilingual MiniLM embeddings via FastEmbed) for retrieval, answer generation and analytics on visitor questions
Chat widget and semantic search on the live WordPress sites
Docker Compose behind nginx, services bound to localhost, memory and CPU limits per service
Prototype: an earlier RAG build with FastAPI, Qdrant, Supabase auth and a Chainlit UI, with switchable LLM providers (Ollama, Claude, OpenAI)
Results & Impact
Live on three WordPress sites, including SportPersonalities.com and SynergisticMan.com
Hosting cost of a few dollars a month instead of a per-seat SaaS fee