Files
noteflow/README.md
2026-01-24 15:10:53 +00:00

114 lines
2.4 KiB
Markdown

# NoteFlow
NoteFlow is an intelligent meeting notetaker: local-first audio capture, navigable recall, and evidence-linked summaries. It uses a gRPC API for bidirectional audio streaming and transcription. In Beta
## What's in this repo
- Python backend (gRPC server + domain services): `src/noteflow/`
- Tauri + React desktop client (Vite): `client/`
## Prerequisites
- Python 3.12+
- Node.js 18+ (for the Tauri/React client)
- Rust toolchain (only if running the Tauri desktop app)
- Docker (optional, for containerized dev)
## Local development
### 1) Backend server
```bash
python -m pip install -e ".[dev]"
python -m noteflow.grpc.server
```
Optional: run with autoreload (watches `src/` and `alembic.ini`):
```bash
python scripts/dev_watch_server.py
```
By default the server listens on `localhost:50051`.
If you want PostgreSQL persistence, set `NOTEFLOW_DATABASE_URL` in your environment or `.env` (see `example.env`).
### 2) Tauri + React client
```bash
cd client
npm install
# Web (Vite dev server)
npm run dev
# Desktop (Tauri dev)
npm run tauri dev
```
The Tauri desktop app requires a working Rust toolchain.
## Container-based development
The repository includes two compose files:
- `docker-compose.prod.yml` — Production deployment with prebuilt images
- `docker-compose.dev.yml` — Development with hot reload and all extras
### Production (prebuilt images)
```bash
# CPU server (default)
docker compose -f docker-compose.prod.yml up -d
# NVIDIA GPU server
docker compose -f docker-compose.prod.yml --profile gpu up -d
# AMD ROCm GPU server
docker compose -f docker-compose.prod.yml --profile rocm up -d
```
### Development (with hot reload)
```bash
# CPU dev server + frontend
docker compose -f docker-compose.dev.yml up -d
# NVIDIA GPU dev server
docker compose -f docker-compose.dev.yml --profile gpu up -d
# AMD ROCm dev server
docker compose -f docker-compose.dev.yml --profile rocm up -d
```
### Building images
```bash
# Build all production images
docker buildx bake prod
# Build and push to registry
REGISTRY=git.baked.rocks/vasceannie docker buildx bake --push prod
# Build dev images locally
docker buildx bake dev
```
## Common commands
```bash
# Backend
pytest
pytest -m "not integration"
ruff check .
mypy src/noteflow
# Client (from client/)
npm run lint
npm run format
npm run test
```
## Configuration
Runtime settings are read from `.env` and `NOTEFLOW_` environment variables. See `src/noteflow/config/settings.py` and `example.env`.