114 lines
2.4 KiB
Markdown
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`.
|