GenieDock is a privacy-focused, all-in-one interface designed to help users interact seamlessly with their favorite LLMs locally. It supports both Ollama models and OpenRouter, offering a streamlined and customizable experience.
NEW - added support for Open Router! Some models are free! Requires API key!
The core idea is to provide an all-in-one solution that runs privately on your localhost.
The main focus is on being FREE, OPEN SOURCE, and PRIVATE.
✅ Multiple Profiles – Create unique profiles for different household members.
✅ Stream Chat Interface with Markdown Support – Enjoy a modern, real-time chat experience like you would expect!
✅ Document-Based RAG – Upload documents to enhance retrieval-augmented generation (RAG) - feed your knowledge to the model.
✅ Model Management & Customization – Swap models,pull models, create you own by adjusting parameters like temperature or context size
✅ Chat Storage – Securely save conversations in a database and resume them anytime.
✅ Prompt Library – Store frequently used prompts for quick access.
✅ Personalized Settings – Define your name and default system prompts.
✅ Voice support – Tired of typing? Full voice support included!
✅ Light/Dark themes – Supports both light and dark theme to suit your style!
✅ Responsive Design – Use the app on all devices no matter the screen size!
GenieDock consists of several parts:
- App - A modern GUI interface built with Next.js.
- Database - PostgreSQL database with vector support to store all your data
- Ollama API - Ollama API to interact with local models
Component | Technology |
---|---|
App | Next.js + TypeScript |
Database | Drizzle ORM + PostgreSQL + PgVector |
Styling | Tailwind CSS |
To get started with development, follow these steps:
-
Prerequisites:
- Ensure the Ollama API is installed.
- Install Docker to set up the PostgreSQL database.
- Dont forget to run Drizzle migrations via
npx drizzle-kit migrate
command too setup your DB tables
-
Configuration:
- Create a
.env
file based on the providedenv.example
template and configure it with your settings.
- Create a
-
Setup and Run:
- Run
npm install
to install the required dependencies. - Start the application by running
npm run dev
.
- Run