Skip to main content

Local Setup (Without Docker)

If you prefer running services directly on your machine instead of Docker.

Backend

cd apps/server

# Copy environment file
cp .env.example .env

# Install Python dependencies
uv sync

# Run migrations (uses SQLite by default)
uv run python manage.py migrate

# Seed default categories (18 categories)
uv run python manage.py seed_categories

# Optional: create admin user
uv run python manage.py createsuperuser

# Verify setup
uv run pytest -v

# Start dev server
uv run python manage.py runserver
# Server runs on http://127.0.0.1:8000

Mobile Client

cd apps/mobile-client

# Install Node.js dependencies (from repo root)
cd ../..
pnpm install

# Start Metro bundler
cd apps/mobile-client
pnpm start
# Scan QR code with Expo Go, or press 'i' for iOS / 'a' for Android

Common Commands

Backend

CommandDescription
uv syncInstall dependencies
uv run python manage.py runserverStart dev server
uv run python manage.py migrateRun migrations
uv run python manage.py makemigrationsCreate migrations
uv run python manage.py seed_categoriesSeed default categories
uv run pytestRun tests
uv add <package>Add a dependency
uv add --dev <package>Add a dev dependency

Mobile

CommandDescription
pnpm startStart Metro bundler
pnpm iosRun on iOS simulator
pnpm androidRun on Android emulator
pnpm testRun tests
pnpm lintRun ESLint
pnpm type-checkRun TypeScript check
pnpm db:generateGenerate Drizzle SQL migrations