2026-03-27 15:04:46 +00:00
2026-03-27 15:04:46 +00:00

DearDiary

Self-hosted AI-powered daily journaling application. Capture events throughout the day and let AI generate thoughtful diary pages from your entries.

Features

  • Quick event capture with keyboard shortcut (Ctrl+J)
  • Multiple event types: text, health, photo, voice
  • Automatic geolocation - events tagged with your location
  • AI-powered diary page generation with customizable providers
  • Events become immutable once a diary is generated (prevents editing past memories)
  • Regenerate diary pages with additional instructions
  • Generation tasks with title tracking per task
  • Read all diaries with pagination (10/50/100 per page)
  • Dashboard with diary excerpts
  • Calendar view for browsing past entries
  • Full-text search across events and diaries
  • Export/Import data with version checking
  • Dark/light theme support
  • Self-hostable with Docker

Quick Start

# Clone the repository
git clone git@git.kropa.tech:lotherk/deardiary.git
cd deardiary

# Configure environment (optional - defaults work out of box)
cp .env.example .env

# Start with Docker
docker compose up -d

Access the app at http://localhost:3000

Default credentials: admin@localhost / changeme123

Configuration

Environment Variables

Copy .env.example to .env and configure:

# Backend
BACKEND_JWT_SECRET=your-secret-key
BACKEND_DEFAULT_USER_EMAIL=admin@example.com
BACKEND_DEFAULT_USER_PASSWORD=your-password

# Default AI for new users (optional)
BACKEND_DEFAULT_AI_PROVIDER=groq
BACKEND_DEFAULT_AI_MODEL=llama-3.3-70b-versatile
BACKEND_DEFAULT_AI_API_KEY=your-api-key

# Website links (for product website)
WEBSITE_APP_URL=https://your-app.example.com
GIT_URL=https://git.kropa.tech/lotherk/deardiary

AI Providers

Go to Settings and select your AI provider (Groq, OpenAI, Anthropic, Ollama, LM Studio, xAI, Custom).

New users will use the system default AI settings by default. Users can uncheck "Use system default settings" to configure their own.

Development

Prerequisites

  • Bun
  • Node.js 20+
  • Docker

Backend

cd backend
bun install
bunx prisma generate
bun run dev

Frontend

cd frontend
npm install
npm run dev

Docker Build

docker compose build && docker compose up -d

Project Structure

├── backend/          # Hono + Prisma backend
│   ├── prisma/      # Database schema
│   └── src/         # API routes and AI services
├── frontend/         # React + Vite frontend
│   └── src/
│       ├── pages/   # Page components
│       ├── components/
│       └── lib/     # API client, geolocation
├── www/              # Product website with docs
├── Dockerfile        # App container (frontend + backend + nginx)
├── Dockerfile.website # Website container with envsubst
├── docker-compose.yml
└── docker-entrypoint.d/ # Entrypoint scripts

Routes

  • / - Dashboard with recent diary pages and excerpts
  • /today - Today's event stream (main capture page)
  • /diary - Paginated diary reader (10/50/100 per page)
  • /journal/:date - View/edit diary page with generation tasks
  • /day/:date - View day's events
  • /calendar - Calendar view
  • /settings - Configuration and Export/Import

License

MIT License

Copyright 2026 Konrad Lother

Description
Self-hosted AI-powered daily journaling application. Capture events throughout the day and let AI generate thoughtful diary pages from your entries.
https://deardiary.lother.io
Readme 446 KiB
Languages
TypeScript 66.4%
Kotlin 14.9%
HTML 12%
CSS 3.1%
JavaScript 2.5%
Other 1.1%