TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻译准备中
Crumbs by Bretzel - 一个自托管、隐私优先的 Google Keep 替代品。捕捉你的想法、创意和笔记。使用 SvelteKit 构建。
AI 翻译
Crumbs by Bretzel - a self-hosted, privacy-first Google Keep alternative. Capture your thoughts, ideas and notes. Built with SvelteKit.
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
A self-hostable, offline-first note-taking app that respects your privacy. Part of the Bretzel app universe.
Open http://localhost:3000 and create your admin account on first visit.
Google and GitHub OAuth are also supported. See docs/AUTH.md for all providers and setup guides.
Add SMTP settings to enable email notifications (share alerts, welcome emails, security alerts):
Auto-enabled when SMTP_HOST is set. Users can opt out in Settings > Preferences. See docs/DEPLOYMENT.md for details.
Run make help to see all available commands, or use pnpm directly:查看完整 README ↗A self-hostable, offline-first note-taking app that respects your privacy. Part of the Bretzel app universe.
mkdir crumbs && cd crumbs
curl -fsSLO https://raw.githubusercontent.com/bretzel-app/crumbs/main/docker-compose.yml
docker compose up -d
Open http://localhost:3000 and create your admin account. The first visitor becomes the admin, so do this before exposing the port.
To use it from other devices you need HTTPS and a matching ORIGIN. Plain http://<server-ip>:3000 won't keep you signed in. docs/DEPLOYMENT.md covers reverse proxies, backups, updates and a production checklist.
# docker-compose.yml
services:
crumbs:
image: ghcr.io/bretzel-app/crumbs:latest
ports:
- "3000:3000"
volumes:
- crumbs-data:/data
environment:
- ORIGIN=https://notes.example.com
- AUTH_OIDC_ISSUER=https://authentik.example.com/application/o/crumbs/
- AUTH_OIDC_CLIENT_ID=your-client-id
- AUTH_OIDC_CLIENT_SECRET=your-client-secret
- AUTH_OIDC_DISPLAY_NAME=Authentik
restart: unless-stopped
volumes:
crumbs-data:
Google and GitHub OAuth are also supported. See docs/AUTH.md for all providers and setup guides.
Add SMTP settings to enable email notifications (share alerts, welcome emails, security alerts):
environment:
- SMTP_HOST=smtp.example.com
- SMTP_PORT=587
- SMTP_USER=your-username
- SMTP_PASS=your-password
- SMTP_FROM=Crumbs <[email protected]>
Auto-enabled when SMTP_HOST is set. Users can opt out in Settings > Preferences. See docs/DEPLOYMENT.md for details.
git clone https://github.com/bretzel-app/crumbs.git && cd crumbs
pnpm install --frozen-lockfile
pnpm build
DATABASE_URL=./data/crumbs.db ORIGIN=http://localhost:3000 BODY_SIZE_LIMIT=12M node build
Use Node.js 22 (see .nvmrc). See docs/DEPLOYMENT.md for a production setup with systemd.
pnpm install
pnpm dev
Run make help to see all available commands, or use pnpm directly:
pnpm test # Unit + E2E tests
pnpm check # Type checking
pnpm build # Production build
See docs/FEATURES.md for detailed feature documentation.
| Layer | Technology |
|---|---|
| Framework | SvelteKit 2 (Svelte 5 runes) |
| Language | TypeScript (strict) |
| UI | Tailwind CSS 4 |
| Database | SQLite (better-sqlite3) + Drizzle ORM |
| Client DB | IndexedDB (idb) |
| Sync | LWW CRDTs |
| Auth | Argon2 + session cookies |
| Testing | Vitest + Playwright |
| Container | Docker (multi-stage) |
| CI/CD | GitHub Actions |
| Document | Description |
|---|---|
| Features | Detailed feature list and behavior |
| Architecture | Local-first sync design, tech rationale, DB schema |
| Auth | Password auth, OAuth/SSO setup (Authentik, Keycloak, etc.) |
| Deployment | Docker, Node.js, reverse proxy, backups, env vars |
| API | REST API reference (auto-generated) |
| Contributing | How to contribute |
| Security | Vulnerability reporting policy |
| Changelog | Release history |
amd64, arm64) image to ghcr.io/bretzel-app/crumbs on v* tags, authenticated with the workflow's GITHUB_TOKEN (no extra secrets needed)