Skip to content

emilienbev/Noted

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Noted

Dashboard

This is a personal cloud storage app, meant to allow dumping your personal info on self-hosted infrastructure and having it automatically sorted, organized, tagged and embedded to search for info later.

Features

  • Notes - Markdown notes with folder organization, tagging, and offline-first sync with conflict resolution.
  • File Storage - Drag-and-drop file uploads with directory browsing, metadata, and tagging.
  • Todos - Kanban board with four static columns (Today, This Week, This Month, This Year).
  • LLM Chat - Streaming AI chat backed by a local LLM, with MCP tool integration for querying notes, todos, and files.
  • SmartFS - A composable AI pipeline for file organization that analyzes uploads and suggests directory structures, adds tags, descriptions. I encourage reading docs/SmartFS.md for details.
  • Semantic Search - Full-text and semantic search across notes, files and TODOs.

Backend Services

  • PostgreSQL - Stores metadata for notes, files, todos, users, tags, chat sessions, and SmartFS entries.
  • MinIO - S3-compatible storage for note markdown content, uploaded files, and chat message history.
  • vLLM & Ollama - For LLM inference and Vision models.
  • Supabase - Optional, used for authentication. Can be disabled for single-user mode.

Sideline features:

  • MCP - The Chat service uses MCP tools to query and/or create notes, todos, and files.
  • Theming - Fully customizable light/dark themes editable in JSON, and synced in user profile.
  • Observability - Optional OpenTelemetry tracing for both frontend and backend, sent to the Aspire collector. See docs/OpenTelemetry_Tracing.md.
  • Tags - Tags are global and unique. A file + note + Todo tag map to the same unique tag. The Tag Management settings page allows to edit or delete a tag, which will cascade to every item that has it assigned. This prevents tag duplication and helps with Search.

.NET Aspire is used to orchestrate the services, but the frontend and backend can be deployed independently.

Screenshots

Notes

Notes

Files

Files

Todos (Kanban Board)

Todos

Search

Search

Chat with MCP Integration

Chat

Tag Management

Tag Management

Themes

Themes

Getting Started

Prerequisites

  • Go 1.23+
  • Bun 1.2+
  • PostgreSQL
  • MinIO (or any S3-compatible service)
  • .NET 10.0 SDK (Optional, for Aspire)
  • Supabase project (optional, only needed if multi-user tenancy is required)
  • Ollama (optional, for chat and SmartFS)
  • vLLM (optional, for Deepseek-OCR)

Filling in the .env file is required for the backend to run. See .env.example for the required variables.

Authentication

Authentication is optional, and allows for multi-user tenancy.

To run in single-user mode, set in your env files:

# backend/.env
AUTH_ENABLED=false

# web/.env
VITE_AUTH_ENABLED=false

When disabled, a default user is automatically used for all requests. No JWT tokens are sent or verified.

With .NET Aspire

dotnet run apphost.cs

Without .NET Aspire

Backend

cd backend
cp .env.example .env   # Fill in your credentials
go mod tidy
go run ./cmd/server

Frontend

cd web
bun install
bun dev

The frontend dev server proxies /api requests to the backend. See web/vite.config.ts for proxy configuration.

Documentation

Document Description
SmartFS AI file organization system overview
Search Full-text search implementation
Orphaned Items Detection and recovery of orphaned S3 objects

Considerations

This project serves as a learning and experimentation platform for working with technologies like OCR, LLMs, and vision models.

The application is fully functional but remains a work in progress and will continue to evolve as new features and experiments are added.

About

Secure, personal cloud storage app with LLM, Vision and OCR integration.

Resources

Stars

Watchers

Forks

Contributors