[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-76286":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":36,"readmeContent":37,"aiSummary":38,"trendingCount":15,"starSnapshotCount":15,"syncStatus":39,"lastSyncTime":40,"discoverSource":41},76286,"bookorbit","bookorbit\u002Fbookorbit","BookOrbit: Your Reading Space","https:\u002F\u002Fbookorbit.app",null,"TypeScript",913,62,13,69,0,30,91,817,90,9.4,"GNU Affero General Public License v3.0",false,"main",[25,26,27,28,29,30,31,32,33,34,35],"audiobook-player","digital-library","docker","ebook-reader","library-management","metadata-management","nestjs","oidc-single-sign-on","opds","self-hosted","vue","2026-06-12 02:03:41","\u003Cdiv align=\"center\">\n\n# BookOrbit\n\nA self-hosted library management and reading platform for ebooks, PDFs, audiobooks, and comics.\n\n[![Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fbookorbit\u002Fbookorbit?style=flat)](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Fstargazers)\n[![CI](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Factions\u002Fworkflows\u002Fci.yml)\n[![Release](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Factions\u002Fworkflows\u002Frelease.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Factions\u002Fworkflows\u002Frelease.yml)\n[![Latest release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fbookorbit\u002Fbookorbit?label=latest)](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Freleases)\n[![Commits\u002Fmonth](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcommit-activity\u002Fm\u002Fbookorbit\u002Fbookorbit?label=commits%2Fmonth)](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Fcommits\u002Fmain)\n[![License: AGPL v3](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-AGPL_v3-blue.svg)](LICENSE)\n\n\u003C!--\n[Website](https:\u002F\u002Fbookorbit.app) · [Demo](https:\u002F\u002Fdemo.bookorbit.app) · [Discussions](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Fdiscussions) · [Contributing](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Fblob\u002Fmain\u002Fdocs\u002FCONTRIBUTING.md) · [Changelog](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Freleases)\n-->\n\n[![Website](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWebsite-bookorbit.app-blue?style=flat&logo=googlechrome&logoColor=white)](https:\u002F\u002Fbookorbit.app)\n[![Demo](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDemo-live-brightgreen?style=flat&logo=rocket&logoColor=white)](https:\u002F\u002Fdemo.bookorbit.app\u002Fmagic?token=2d92cb900e184cf0eb8b11f72cffc6011673d1016e1b300d750eb3d76abc1572)\n[![Discussions](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscussions-GitHub-333?style=flat&logo=github&logoColor=white)](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Fdiscussions)\n[![Contributing](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FContributing-guide-orange?style=flat&logo=handshake&logoColor=white)](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Fblob\u002Fmain\u002Fdocs\u002FCONTRIBUTING.md)\n[![GHCR](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGHCR-bookorbit\u002Fbookorbit-blue?style=flat&logo=docker&logoColor=white)](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Fpkgs\u002Fcontainer\u002Fbookorbit)\n\n\u003C\u002Fdiv>\n\n---\n\n![BookOrbit dashboard showing reading stats, widgets, and book shelves](https:\u002F\u002Fbookorbit.app\u002Fimages\u002Fhome\u002Fdashboard-overview.webp)\n\n---\n\n## What is BookOrbit?\n\nBookOrbit is a self-hosted digital library and reading platform. Organize and read your books, sync seamlessly with Kobo and KOReader devices, enrich your collection with metadata from multiple providers, and support multiple users with OIDC\u002FSSO authentication and detailed reading statistics. Built-in features include OPDS support, customizable dashboard widgets, Send-to-Kindle delivery, and Smart Scopes for dynamic rule-based shelves and filters - all running on infrastructure you control.\n\n---\n\n## Features\n\n**Built-in readers** - no plugins or extra installs required:\n\n| Reader    | Formats                           |\n| --------- | --------------------------------- |\n| eBook     | EPUB, KEPUB, MOBI, AZW3, AZW, FB2 |\n| PDF       | PDF                               |\n| Comics    | CBZ, CBR, CB7                     |\n| Audiobook | M4B, MP3, M4A, OPUS, OGG, FLAC    |\n\n**Multiple libraries:** Per-library folders, scan rules, format priorities, metadata config, and file-write settings.\n\n**Metadata from 9 providers:** Google Books, Amazon, Goodreads, Hardcover, Open Library, iTunes, Audible, AudNexus, and ComicVine - with field-level rules.\n\n**Collections and Smart Scopes:** Curated lists and rule-based saved filters in the sidebar.\n\n**Kobo and KOReader sync:** Auto-push books to Kobo; two-way reading progress sync via KOReader over OPDS.\n\n**OPDS, email delivery, and Book Dock:** OPDS for compatible apps, Send-to-Kindle via email, and browser drag-and-drop uploads.\n\n**Multi-user with multi-provider OIDC\u002FSSO:** Granular per-user permissions, isolated reading data, and simultaneous support for Authentik, Keycloak, Authelia, etc.\n\n**Reading statistics:** Daily reading time, heatmap, streaks, pace, goal tracking, and library health dashboard.\n\n---\n\n## Live Demo\n\nExplore BookOrbit instantly, no installation or account required.\n\n**[🚀 Launch Demo](https:\u002F\u002Fdemo.bookorbit.app\u002Fmagic?token=2d92cb900e184cf0eb8b11f72cffc6011673d1016e1b300d750eb3d76abc1572)**\n\nNote: The demo includes a sample library of public domain books. Some features are limited in the public demo, self-hosting BookOrbit provides the full experience.\n\n---\n\n## Quick Start\n\n```bash\nmkdir bookorbit && cd bookorbit\nmkdir -p books data\u002Fapp data\u002Fpostgres\ncurl -fsSLo .env https:\u002F\u002Fraw.githubusercontent.com\u002Fbookorbit\u002Fbookorbit\u002Fmain\u002F.env.example\ncurl -fsSLo docker-compose.yml https:\u002F\u002Fraw.githubusercontent.com\u002Fbookorbit\u002Fbookorbit\u002Fmain\u002Fdocker-compose.yml\n```\n\nEdit `.env` and set these required values:\n\n```dotenv\nAPP_URL=http:\u002F\u002Fyour-server-ip:3000   # the URL you'll open in your browser\nBOOKS_HOST_PATH=.\u002Fbooks              # folder on your server where your book files live\n\nPOSTGRES_PASSWORD=         # database password           - openssl rand -hex 24\nJWT_SECRET=                # signs login tokens          - openssl rand -hex 32\nSETUP_BOOTSTRAP_TOKEN=     # one-time setup wizard token - openssl rand -hex 16\n```\n\nThen start:\n\n```bash\ndocker compose up -d\n```\n\nOpen `http:\u002F\u002Fyour-server-ip:3000` and complete setup using your `SETUP_BOOTSTRAP_TOKEN`.\n\nFor the full installation guide including reverse proxy setup, file permissions on NAS, external databases, and environment variable reference, see **[bookorbit.app\u002Finstallation](https:\u002F\u002Fbookorbit.app\u002Finstallation.html)**.\n\n---\n\n## Documentation and Contributing\n\nFull documentation is at **[bookorbit.app](https:\u002F\u002Fbookorbit.app)** - covering libraries, metadata, readers, Kobo sync, OPDS, users and permissions, OIDC setup, and more.\n\nFor local development, see [docs\u002FDEVELOPMENT.md](docs\u002FDEVELOPMENT.md). To contribute, see [docs\u002FCONTRIBUTING.md](docs\u002FCONTRIBUTING.md) for the full workflow: branch naming, test expectations, PR checklist, and commit format.\n\n---\n\n## Support\n\n- **Questions and discussion:** [GitHub Discussions](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Fdiscussions)\n- **Bug reports:** [GitHub Issues](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Fissues\u002Fnew?template=bug_report.yml)\n- **Feature requests:** [GitHub Issues](https:\u002F\u002Fgithub.com\u002Fbookorbit\u002Fbookorbit\u002Fissues\u002Fnew?template=feature_request.yml)\n\n---\n\n## License\n\nBookOrbit is licensed under the **[GNU Affero General Public License v3.0](LICENSE)**.\n","BookOrbit 是一个自托管的数字图书馆和阅读平台，支持电子书、PDF、有声书及漫画等多种格式。其核心功能包括无缝同步Kobo和KOReader设备、从多个提供商处丰富书籍元数据、通过OIDC\u002FSSO实现多用户管理以及提供详细的阅读统计等。技术上采用TypeScript开发，基于NestJS后端框架与Vue前端框架构建，并支持Docker部署以简化安装流程。此外，还具备OPDS支持、可定制仪表盘小部件、Send-to-Kindle服务等功能。BookOrbit适用于希望拥有个人控制的数据存储空间并享受流畅阅读体验的用户，特别适合那些需要管理大量数字内容且重视隐私安全的场景。",2,"2026-06-11 03:54:54","CREATED_QUERY"]