Skip to Content
🐺 Vovk.ts is released. Read the blog post →
🤖 Realtime UIRun Locally with Docker Compose

Running the Project Locally

The Realtime Kanban app is available in the GitHub repository  and can be run locally.

Clone the repository and install the dependencies:

git clone https://github.com/finom/realtime-kanban.git && cd realtime-kanban
npm i

Create a .env file in the root directory and add your OpenAI API key and database connection strings:

.env
OPENAI_API_KEY=change_me DATABASE_URL="postgresql://postgres:password@localhost:5432/realtime-kanban-db?schema=public" DATABASE_URL_UNPOOLED="postgresql://postgres:password@localhost:5432/realtime-kanban-db?schema=public" REDIS_URL=redis://localhost:6379

Run Docker containers and the development server:

docker-compose up -d
npm run dev

Open http://localhost:3000  in your browser to see the result. The UI should be self-explanatory. Users and tasks can be created with the UI (click “+ Add Team Member”, etc.), or by clicking one of the floating AI-related buttons: Text or Voice.

The variables in the .env file are used as follows:

  • OPENAI_API_KEY – your OpenAI API key, required for AI features.
  • DATABASE_URL – the database connection string for Prisma ORM, used to instantiate the Prisma client in DatabaseService.ts .
  • DATABASE_URL_UNPOOLED – the database connection string for direct connections, used for migrations in prisma.config.ts .
  • REDIS_URL – the Redis connection string for realtime features, explained in more detail in the Polling article.

You can also define additional env variables in .env:

  • PASSWORD – a simple password protection for the app. It’s described in more detail in the Authentication article.
  • MCP_ACCESS_KEY – a simple authorization key for the MCP server using the ?mcp_access_key=your_key query param. If this variable is not set, no authorization is required. See the MCP article for details.
  • TELEGRAM_BOT_TOKEN – enables the Telegram bot integration for use over a localhost tunnel. See the Telegram Integration article for more information.
Last updated on