Development Commands
Reference guide for common development tasks and commands.
Running the Application
Start API Server
# Development mode with auto-reload
uv run uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# Using helper script
bash scripts/run_dev.sh
# Production mode (no reload)
uv run uvicorn app.main:app --host 0.0.0.0 --port 8000
Access Points:
- API: http://localhost:8000
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- OpenAPI JSON: http://localhost:8000/api/v1/openapi.json
Start Celery Worker
# Standard worker
uv run celery -A app.celery_app worker --loglevel=info
# Using helper script
bash scripts/start_celery_worker.sh
# With debug logging
uv run celery -A app.celery_app worker --loglevel=debug
# With specific concurrency
uv run celery -A app.celery_app worker --concurrency=4
Start Both API and Worker
# Terminal 1: API
bash scripts/run_dev.sh
# Terminal 2: Celery Worker
bash scripts/start_celery_worker.sh
Database Operations
Migrations
# Apply all pending migrations
uv run alembic upgrade head
# Create new migration
uv run alembic revision --autogenerate -m "Add user email index"
# Rollback last migration
uv run alembic downgrade -1
# Rollback to specific version
uv run alembic downgrade abc123
# View migration history
uv run alembic history
# View current version
uv run alembic current
# Show SQL for migration (don't execute)
uv run alembic upgrade head --sql
Code Quality
Linting and Formatting
# Format code (modify files)
uv run ruff format .
# Format specific file or directory
uv run ruff format app/models/
# Check formatting without modifying
uv run ruff format --check .
# Lint code (show issues)
uv run ruff check .
# Lint with auto-fix
uv run ruff check --fix .
# Lint specific file
uv run ruff check app/api/v1/uploads.py
Ruff Configuration
Located in pyproject.toml:
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I"] # pycodestyle, pyflakes, isort
ignore = ["E501"] # Line too long
Dependency Management
Installing Dependencies
# Install all dependencies
uv sync
# Install with all optional groups
uv sync --all-groups
# Install without dev dependencies
uv sync --no-dev
# Force reinstall
uv sync --force
Adding Dependencies
# Add package
uv add fastapi
# Add dev dependency
uv add --dev pytest
# Add with version constraint
uv add "sqlalchemy>=2.0,<3.0"
# Add from git
uv add git+https://github.com/user/repo.git
Updating Dependencies
# Update all dependencies
uv lock --upgrade
# Update and install
uv lock --upgrade && uv sync
# Update specific package
uv add fastapi --upgrade
Remove Dependencies
# Remove package
uv remove package-name
Documentation Site
Development
cd docs
# Install dependencies (first time)
npm install
# Start dev server with API docs generation
npm start
# Build for production
npm run build
# Serve production build
npm run serve
Maintenance
# Clear cache
npm run clear
# Type check
npm run typecheck
# Clean and rebuild
npm run clear && npm run build
Docker Operations
Service Management
# Start all services
docker compose -f docker-compose.dev.yml up -d
# Start specific services
docker compose -f docker-compose.dev.yml up -d postgres redis
# Stop services (keep data)
docker compose -f docker-compose.dev.yml stop
# Stop and remove containers
docker compose -f docker-compose.dev.yml down
# Stop and remove volumes (DELETE DATA)
docker compose -f docker-compose.dev.yml down -v
# Restart services
docker compose -f docker-compose.dev.yml restart
# Restart specific service
docker compose -f docker-compose.dev.yml restart postgres
Service Logs
# View all logs
docker compose -f docker-compose.dev.yml logs -f
# View specific service
docker compose -f docker-compose.dev.yml logs -f postgres
# Last 100 lines
docker compose -f docker-compose.dev.yml logs --tail=100 postgres
Service Status
# Check running services
docker compose -f docker-compose.dev.yml ps
# Check service health
docker compose -f docker-compose.dev.yml exec postgres pg_isready
docker compose -f docker-compose.dev.yml exec redis redis-cli ping
Celery Operations
Task Management
# List registered tasks
uv run celery -A app.celery_app inspect registered
# View active tasks
uv run celery -A app.celery_app inspect active
# View scheduled tasks
uv run celery -A app.celery_app inspect scheduled
# Purge all tasks
uv run celery -A app.celery_app purge
Worker Control
# Shutdown worker
uv run celery -A app.celery_app control shutdown
# Worker statistics
uv run celery -A app.celery_app inspect stats
# View worker pool settings
uv run celery -A app.celery_app inspect pool
Next Steps
- Docker Setup - Docker configuration details
- Observability - Monitoring and metrics