Meeting and Notes Management Application with Tailscale Integration and optional LLM-powered summaries.
- Internationalization: Support for German, English, French, Spanish (react-i18next)
- Meeting Management: Create, edit, and organize meetings with metadata
- Notes System: Attach numbered notes to meetings with automatic numbering and manual reordering (▲/▼)
- Full-Text Search: Search across meeting subjects, summaries, participants, and keywords
- Configuration Management: Web UI for LLM provider settings with masked API keys and customizable prompts
- Tailscale Integration: Seamless authentication and secure network access via tsnet with user information display
- LLM Integration: Optional AI-powered meeting summaries and note enhancement with undo functionality (OpenAI, Anthropic, Ollama, LM Studio, vLLM)
- Single Binary: Frontend embedded using go:embed
- Dev Mode: Run without Tailscale for local development
- Responsive UI: React + Vite + TypeScript frontend
- Backend: Go 1.26+ with stdlib HTTP routing
- Frontend: React + Vite + TypeScript
- Internationalization: react-i18next (German, English, French, Spanish)
- Database: SQLite with modernc.org/sqlite (Pure Go, no CGO)
- Auth: Tailscale tsnet integration
- Embedding: go:embed for single binary deployment
Dev Mode:
docker run -d -p 8080:8080 -v $(pwd)/data:/data --name notebook zorak1103/notebook:latestTailscale Mode:
docker run -d --network host -v $(pwd)/data:/data --name notebook \
zorak1103/notebook:latest --hostname notebook --state-dir /data/tsnet-state --db /data/notebook.dbAccess at https://notebook.your-tailnet.ts.net
Docker Compose: docker compose up -d notebook-dev (see docker-compose.yml)
Download the latest release from Releases:
# Linux / macOS
tar xzf notebook_Linux_x86_64.tar.gz
./notebook --dev-listen :8080Windows: download notebook_Windows_x86_64.zip.
Prerequisites: Go 1.26+, Node.js 20+
git clone https://github.com/zorak1103/notebook.git
cd notebook
task build
./notebook --dev-listen :8080# Dev mode (no Tailscale)
notebook --dev-listen :8080 --db notebook.db
# Tailscale mode (production)
notebook --hostname notebook --state-dir ./tsnet-state --db notebook.dbFor CLI flags, LLM configuration, and AI feature details see docs/configuration.md.
| Command | Description |
|---|---|
task build |
Build frontend + backend |
task test |
Run tests |
task lint |
Run linter |
task verify |
Run lint + lint:frontend + test |
task test:coverage |
Tests with per-file 80% coverage enforcement |
task --list |
List all tasks |
For project structure, build system details, and frontend dev setup see docs/development.md.
See .docs/api.md for the full API reference and database schema.
Request flow: Browser → HTTP → Server → Handler → Repository → SQLite
Binaries for Linux/macOS/Windows (amd64 + arm64) and Docker image zorak1103/notebook:latest (multi-arch).
- Authentication: Automatic via Tailscale WhoIs API
- Network Isolation: Only accessible on your Tailnet (Tailscale mode)
- Database: SQLite file-based, no network exposure
- API Keys: Masked in UI, stored in database (encryption optional)
- Non-root Docker: Runs as user
notebook(UID 1000)
MIT License - see LICENSE for details
- Tailscale for tsnet
- modernc.org/sqlite for Pure Go SQLite
- Vite for blazing fast frontend builds
- GoReleaser for multi-platform releases