kevin zingg

minne.diy

RAG as a Service - Because building RAG pipelines shouldn't be this hard

minne = memory in Swedish (RAG for memory) + .diy (do it yourself)

The backstory

After building multiple RAG systems from scratch, I got tired of reinventing the wheel. Every project needed document upload, vector storage, embeddings, and query endpoints. So I built minne.diy - a modular, containerized RAG platform that handles all of this out of the box. Upload your files (any format - PDFs, videos, audio, text, whatever), query with AI, and even embed the whole thing on your site with a click. That's it.

Try minne.diy →
minne.diy — your docs, instantly searchable by AI

What it does

  • Upload literally any file type - PDFs, videos, audio files, text documents - it all gets processed and indexed
  • One-click embed: drop the entire RAG interface on any website instantly
  • Modular architecture: swap out embedding providers (OpenAI, etc.), LLMs (OpenAI, Anthropic), or document processors
  • PostgreSQL + pgvector for semantic search with actual vector similarity
  • Anonymous sessions: users can upload and process docs before signing up, then convert to full account
  • Background processing with Redis queues - upload returns immediately, processing happens async
  • MinIO for scalable object storage - because S3 shouldn't be the only option

Demo

minne.diy demo — searching docs with natural language

The architecture

FastAPI backend with modular services for document processing, embeddings, and LLM queries. Everything runs in Docker containers: PostgreSQL with pgvector extension for embeddings, Redis for background task queues, MinIO for document storage. The frontend is a clean React dashboard built with Vite and Tailwind.

The modularity is real - want to switch from OpenAI embeddings to a local model? Implement the BaseEmbeddingProvider interface. Want to add support for Word docs? Create a new processor extending BaseProcessor. No spaghetti code, just clean abstractions.

Self-hosted on Hetzner

Everything runs on a Hetzner server. No AWS, no vendor lock-in. Full control over infrastructure, data, and costs. The entire stack is containerized and orchestrated with Docker Compose, making deployment and scaling straightforward.

How it works

Upload a document → it's stored in MinIO and marked as pending. A background worker picks it up, extracts text (handling PDFs, plain text, etc.), chunks the content using configurable strategies, generates embeddings via OpenAI, and stores everything in PostgreSQL with pgvector. Once processed, you can query your knowledge base and get AI-powered responses with source citations.

Embeddable anywhere

One click and you get an embed code. Drop it on any website and boom - instant RAG-powered chat interface. Your users can query your knowledge base without leaving your site. No complex integration, no backend setup required. Just paste the code and it works.

Anonymous sessions

Users can land on the site, upload documents, and see them get processed without creating an account. Only when they want to query do they hit the signup wall. On signup, their anonymous session converts to a full user account with all their documents preserved. Classic try-before-you-buy.

FastAPIPostgreSQLpgvectorRedisMinIODockerReactViteTailwindOpenAIAnthropicRAGHetzner