# NoteGraph A personal knowledge infrastructure for consolidating notes, thoughts, decisions, and contextual information across projects. ## Architecture ``` ┌─────────────────────────────────────────────────────────────┐ │ NoteGraph │ ├─────────────────────────────────────────────────────────────┤ │ UI Layer │ SilverBullet (self-hosted PWA) │ │ Storage Layer │ Markdown files in Git │ │ Import Layer │ PDF/OCR/AI ingestion service │ │ Graph Layer │ Relationship index + search │ │ Integration Layer │ OrgMyLife API bridge (tasks ↔ notes) │ │ AI Layer │ Auto-tagging, enrichment, suggestions │ └─────────────────────────────────────────────────────────────┘ ``` ## Quick Start ### Deploy on VPS (Docker) ```bash cd NoteGraph cp .env.example .env # Edit .env with your credentials docker compose up -d ``` SilverBullet will be available at `https://notes.andreknie.de` (or whatever domain you configure). ### Local Development ```bash docker compose up -d # Access at http://localhost:3000 ``` ## Structure ``` NoteGraph/ ├── docker-compose.yml # SilverBullet + reverse proxy ├── notes/ # Markdown knowledge base (git-backed) │ ├── inbox/ # Quick captures, unsorted │ ├── projects/ # Project-specific notes │ ├── people/ # Person-specific context │ ├── meetings/ # Meeting notes │ ├── decisions/ # Recorded decisions │ └── templates/ # Note templates ├── ingestion/ # Document import service (Phase 2) ├── graph-service/ # Relationship index (Phase 3) └── .github/workflows/ # Auto-commit, backup ``` ## Features ### Phase 1 (Current) - [x] SilverBullet deployment (Docker) - [x] Git-backed markdown storage - [x] Wiki-links (`[[note title]]`) and backlinks - [x] Full-text search - [x] Tags and metadata - [x] Offline PWA (mobile access) - [x] Auto-commit to Git ### Phase 2 (Planned) - [ ] PDF text extraction - [ ] Handwritten note OCR - [ ] AI summarization on import - [ ] Auto-tagging ### Phase 3 (Planned) - [ ] Relationship graph index - [ ] AI-assisted enrichment - [ ] Graph visualization - [ ] OrgMyLife deep integration (task ↔ note linking) ## Integration with OrgMyLife Notes can be linked to OrgMyLife tasks via tags: - Tag a note with `#task/123` to link it to task #123 - The OrgMyLife dashboard can surface relevant notes for upcoming meetings - Tasks created from notes maintain traceability ## License MIT