JOIDY
DOCUMENTATION MENU

Getting Started

Get Joidy up and running in minutes with Docker Compose.

Getting Started

Welcome to Joidy! This guide will help you get up and running quickly.

What You'll Need

  • Docker & Docker Compose
  • 4GB+ RAM
  • (Optional) An AI API key (Gemini, OpenAI, etc.)

1. Install

Choose one method:

Docker (easiest):

git clone https://github.com/Axel-DaMage/joidy.git
cd joidy
cp .env.example .env
docker compose up -d

One-liner (Linux/macOS):

curl -fsSL https://raw.githubusercontent.com/Axel-DaMage/joidy/main/scripts/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/Axel-DaMage/joidy/main/scripts/install.ps1 | iex

Homebrew:

brew tap Axel-DaMage/homebrew-tap
brew install joidy
joidy up

AUR:

yay -S joidy

2. Configure

Edit .env with your settings:

vim .env

At minimum, set SECRET_KEY (openssl rand -hex 32), OBSIDIAN_VAULT_PATH, and GEMINI_API_KEY (or another AI provider key — Ollama needs none). If you plan to run with APP_ENV=production, also set AUTH_PASSWORD.

3. Verify

Open http://localhost:3000 — you should see the Joidy dashboard.

Check service health:

docker compose ps
curl http://localhost:8000/health

4. Configure Obsidian (Optional)

Add your vault path to .env (~ is expanded to your home directory):

OBSIDIAN_VAULT_PATH=~/Documents/obsidian/my-vault

Restart the worker:

docker compose restart worker

5. Enable AI Features (Optional)

Add API keys to .env:

GEMINI_API_KEY=your-key
# or
OPENAI_API_KEY=your-key

6. Create Your First Note

  1. Open http://localhost:3000
  2. Click "New Note" or create a .md file in your Obsidian vault
  3. Watch your plant grow and XP increase!

Next Steps

Troubleshooting

Services Won't Start

# Check logs
docker compose logs -f

Port conflicts: joidy up automatically tries subsequent ports. With plain docker compose, override FRONTEND_PORT, API_PORT, AI_SERVICE_PORT, or WORKER_PORT in .env.

Permission Issues

# Fix data directory permissions
sudo chown -R 1000:1000 ./data

Database Errors

# Reset database (loses all data!)
docker compose down -v
docker compose up -d