lotherk 5c217853de feat: v0.0.1 - Groq provider, timezone, journal context, test connection, task logging
Added:
- Groq AI provider (free, fast with llama-3.3-70b-versatile)
- Timezone setting (22 timezones)
- Journal context: include previous journals (3/7/14/30 days)
- Test connection button for AI providers
- Per-provider settings (API key, model, base URL remembered)
- Detailed task logging (full prompts and responses)
- Tasks page with expandable details
- Progress modal with steps and AI output details

Fixed:
- Groq API endpoint (https://api.groq.com/openai/v1/chat/completions)
- Ollama baseUrl leaking to other providers
- Database schema references
- Proper Prisma migrations (data-safe)

Changed:
- Default AI: OpenAI → Groq
- Project renamed: TotalRecall → DearDiary
- Strict anti-hallucination prompt
- Docker uses prisma migrate deploy (non-destructive)
2026-03-26 21:56:29 +00:00

DearDiary

Your day, analyzed. A journal that writes itself.

AI-powered daily journal that captures life through multiple input methods and generates thoughtful, reflective journal entries.

See CHANGELOG.md for detailed version history.

Features

  • Multiple Input Types: Text notes, photos, voice memos, health data
  • AI Journal Generation: OpenAI, Anthropic, Ollama, or LM Studio
  • Self-Hostable: Run it yourself or use any hosted version
  • Same Codebase: Single deployment works for single-user or multi-tenant
  • Task History: Full logging of AI requests and responses

Quick Start

git clone https://github.com/your-repo/deardiary.git
cd deardiary

# Create .env file
cp backend/.env.example .env
# Edit .env and set JWT_SECRET

# Start
docker compose up -d

Visit http://localhost:5173

Manual Development

# Backend
cd backend
bun install
bunx prisma generate
bunx prisma db push
bun run dev

# Frontend (separate terminal)
cd frontend
npm install
npm run dev

Configuration

Environment Variables

Variable Default Description
DATABASE_URL file:./data/deardiary.db SQLite, PostgreSQL, or MySQL
JWT_SECRET (required) Secret for JWT signing
MEDIA_DIR ./data/media Directory for uploads
PORT 3000 Server port
CORS_ORIGIN * Allowed origins

Database Examples

# SQLite (default)
DATABASE_URL="file:./data/deardiary.db"

# PostgreSQL
DATABASE_URL="postgresql://user:pass@host:5432/deardiary"

# MySQL
DATABASE_URL="mysql://user:pass@host:3306/deardiary"

AI Providers

Configure in Settings after logging in:

Provider Setup
OpenAI API key required
Anthropic API key required
Ollama Local URL (default: http://localhost:11434)
LM Studio Local URL (default: http://localhost:1234/v1)

Project Structure

deardiary/
├── backend/           # Bun + Hono API server
│   ├── src/
│   │   ├── routes/   # API endpoints
│   │   ├── services/ # AI providers
│   │   └── middleware/
│   └── prisma/       # Database schema
├── frontend/         # React + Vite web app
├── android/         # Native Android app (Kotlin + Compose)
├── docker-compose.yml
└── PLAN.md          # Full specification

API

All endpoints require Authorization: Bearer {api_key} header.

POST   /api/v1/auth/register
POST   /api/v1/auth/login
POST   /api/v1/auth/api-key

GET    /api/v1/days
GET    /api/v1/days/:date
DELETE /api/v1/days/:date

POST   /api/v1/entries
GET    /api/v1/entries/:id
PUT    /api/v1/entries/:id
DELETE /api/v1/entries/:id
POST   /api/v1/entries/:id/photo
POST   /api/v1/entries/:id/voice

POST   /api/v1/journal/generate/:date
GET    /api/v1/journal/:date
GET    /api/v1/journal/:date/tasks

GET    /api/v1/settings
PUT    /api/v1/settings

License

MIT

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%