Skip to content

Repository files navigation

Forgetful UI

License Node TypeScript React Mantine

A modern web dashboard for managing your AI knowledge base powered by Forgetful.

Browse memories, entities, projects, and visualize connections in an interactive knowledge graph.

Forgetful UI

✨ Features

  • Memories - Create, edit, search and organize atomic knowledge units
  • Entities - Track people, organizations, teams and their relationships
  • Knowledge Graph - Interactive visualization of connections between memories and entities
  • Projects - Organize knowledge by context
  • Global Project Filter - Focus on specific project across all views

New to Forgetful? Check out the User Guide for a complete walkthrough of all features.

🚀 Quick Start (Docker)

Add to your existing docker-compose.yml:

  forgetful-ui:
    image: ghcr.io/riffi/forgetful-ui:latest
    container_name: forgetful-ui
    restart: unless-stopped
    ports:
      - "127.0.0.1:3000:80"
    networks:
      - forgetful
    depends_on:
      forgetful-service:
        condition: service_healthy

Then run:

docker compose up -d --pull always

Open http://localhost:3000 in your browser.

The frontend proxies all API requests to forgetful-service:8020 automatically.

🐳 Full Stack (Docker Compose)

To run both frontend and backend together:

cd docker
cp .env.example .env
docker compose up -d

This starts:

Edit .env to customize ports and settings.

🔧 Development Setup

Prerequisites

Start Development Server

npm install
npm run dev

Open http://localhost:5173 in your browser.

Build for Production

npm run build
npm run preview

Configuration

Create .env.local to override API URL:

VITE_API_URL=http://localhost:8020/api/v1

🌐 Production Deployment

For production deployment with Traefik and GitHub OAuth, see the Deployment Guide.

Key architecture:

Internet → Traefik (HTTPS) → forgetful-ui (nginx) → forgetful-service (API)

The UI container proxies all API and OAuth requests to the backend, making it easy to deploy behind a reverse proxy with SSL.

📦 Docker Build

Build the image locally:

docker build -f docker/Dockerfile -t forgetful-ui .
docker run -p 3000:80 forgetful-ui

🔐 Authentication

The frontend automatically detects the backend authentication mode:

Backend Response Detected Mode Frontend Behavior
API returns 200 OK disabled Direct access, no login required
API returns 401 + OAuth metadata exists oauth Shows "Login with GitHub" button
API returns 401 + no OAuth metadata jwt Shows JWT login form

Detection flow:

  1. Frontend makes test request to /api/v1/memories?limit=1
  2. If 401 Unauthorized, checks /.well-known/oauth-authorization-server
  3. If OAuth metadata found → OAuth mode (PKCE flow with GitHub)
  4. Otherwise → JWT mode or auth disabled

This allows the same frontend to work with different backend configurations without any changes.

About

UI for a forgetful shared memory backend

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages