5c217853ded35168d77dae4dc51d9ba956e3208d
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)
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
Docker (Recommended)
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
Languages
TypeScript
66.4%
Kotlin
14.9%
HTML
12%
CSS
3.1%
JavaScript
2.5%
Other
1.1%