新闻详情

新闻详情

首页 / 资讯中心 / 详情

拆解Grimmory技术栈:Spring Boot+Angular+MariaDB自托管图书库架构深度解析

发布时间:2026/9/25 5:03:29来源:尧图网络
拆解Grimmory技术栈:Spring Boot+Angular+MariaDB自托管图书库架构深度解析
拆解Grimmory技术栈Spring BootAngularMariaDB自托管图书库架构深度解析【免费下载链接】grimmoryA self-hosted library for your ebooks, comics, and audiobooks项目地址: https://gitcode.com/gh_mirrors/gr/grimmoryGrimmory 是一个自托管图书库self-hosted library帮你把电子书、漫画和有声书统一管起来智能书架、自动元数据抓取、浏览器内阅读器、Kobo/OPDS 设备同步一应俱全。它的技术架构由三大支柱撑起——Spring Boot 4 后端、Angular 22 前端、MariaDB 数据库再通过多阶段 Docker 构建打成单一镜像一键部署。这篇文章带你从整体架构到每个模块逐层拆解这套自托管电子书管理方案的工程细节 项目全景一屏看懂三大核心组件Grimmory 采用经典的前后端分离 统一打包架构仓库目录结构一目了然组件技术选型职责后端Java 25 Spring Boot 4.1 Hibernate ORM 7HTTP API、鉴权、元数据、文件处理、后台任务前端Angular 22 TypeScript Tailwind CSS单页应用SPA阅读器、书架管理、设置数据库MariaDB 11.4 Flyway书目、用户、进度、审计日志等结构化数据部署多阶段 Docker 构建前端产物打进后端 jar单容器 单端口交付关键入口文件后端启动类BookloreApplication.java后端构建脚本build.gradle.kts前端依赖清单package.json生产镜像定义Dockerfile 值得注意的设计构建时 Angular 的dist产物会被 Gradle 拷贝进 Spring Boot 的static目录最终只有一个 jar 在跑无需 Nginx 反代前端静态资源运维成本极低。后端架构Spring Boot 4 的现代化服务端后端是整套系统的心脏模块划分清晰backend/src/main/java/org/booklore/下按controller/service/repository/model分层共 50 个 Controller 覆盖书籍、书架、Kobo、OPDS、Komga、元数据等全部领域。核心框架栈Spring Boot 4.1.1 Java 25启用了语言预览特性--enable-preview并发模型使用虚拟线程——Tomcat 平台线程上限仅 10真正的并发交给虚拟线程处理这在 application.yaml 中有明确注释Spring Data JPA Hibernate 7.4所有数据访问走 JPA 仓库方法官方约定禁止随意引入原生 SQLSpring Security OIDC支持本地账号和 OIDC 登录如 PocketID还有远程代理头鉴权forward auth模式WebSocket STOMP向前端实时推送元数据进度、任务状态等事件Caffeine 缓存 springdoc OpenAPI热数据缓存、可按需开启 API 文档API_DOCS_ENABLEDtrue多媒体处理能力才是灵魂作为自托管图书库Grimmory 后端集成了大量硬核格式处理库能力依赖库PDF 渲染/解析pdfium4j按目标平台分发原生库支持交叉编译EPUB 解析epub4j项目自维护 fork有声书元数据M4B/MP3/OPUSjaudiotaggerCBR 漫画压缩包junrar commons-compress文件类型嗅探Apache TikaKobo KEPUB 转换容器内置 kepubify 二进制音频探测容器内置 ffprobe源自 static-ffmpeg这套组合拳让丢一个 EPUB 进去封面、简介、评分自动齐活的元数据流程成为可能——数据源包括 Google Books、Open Library 和 Amazon详见后端开发文档 backend/DEVELOPMENT.md。前端架构Angular 22 单页应用的工程实践前端采用Angular 22 TypeScript功能以 feature-based 方式组织在frontend/src/app/features/下目录即文档book/书库、readers/阅读器、metadata/元数据、settings/设置、stats/统计等。几个亮点四大内置阅读器ebook-readerFoliate.js 驱动、pdf-readerembedpdf/WASM、cbx-reader漫画、audiobook-player全部跑在浏览器里支持标注、高亮和进度同步状态管理TanStack Query 管理服务端缓存RxJS 处理流式数据实时通信stomp/rx-stomp 订阅后端 WebSocket 事件PWA 支持Angular Service Workerngsw-config.json 完整的 Web App Manifest离线可访问国际化21 种语言的 JSON 词条位于 frontend/src/i18n/通过 Crowdin 协作翻译质量保障Vitest 单测 Playwright E2Eplaywright/login-and-books.spec.ts数据库架构MariaDB Flyway 版本化迁移生产环境使用MariaDB 11.4Docker Compose 中采用 linuxserver 镜像测试环境切换为 H2 内存库。Grimmory 使用Flyway管理全部表结构变更迁移脚本位于backend/src/main/resources/db/migration/已积累100 个带版本号的 SQL 文件如V106__Add_physical_book_support.sql、V118__Create_pdf_annotations_table.sql每次升级容器Flyway 自动增量执行新脚本——升级不丢数据这是自托管项目长期维护的刚需数据模型覆盖书籍、书架、阅读进度、Kobo 同步状态、审计日志、OIDC 用户映射等 390 个实体模型文件一键部署多阶段 Docker 构建流水线Dockerfile 是一条教科书级的四段式流水线frontend-buildnode:24-alpine pnpm 离线安装依赖构建 Angular 生产包backend-buildgradle:9.5.1-jdk25-alpine执行bootJar并把前端dist注入 jar工具层从static-ffmpeg摘出ffprobe按 CPU 架构amd64/arm64拉取kepubify二进制运行层eclipse-temurin:25-jre-alpine作为最终基底只装libstdc、libarchive等最小依赖暴露6060 端口生产镜像还内置了 JVM 调优参数Shenandoah GC、字符串去重、60% 内存上限和健康检查/api/v1/healthcheck。官方提供了三套部署方案可按环境任选Docker Composedeploy/compose/docker-compose.ymlKubernetes Helmdeploy/helm/grimmory/Chart.yamlPodman Quadletdeploy/podman/quadlet/README.md最快上手三步部署自托管图书库准备.env填写数据库地址与账号示例见仓库 README复制并修改 docker-compose.yml挂载./books书库、./bookdrop自动导入目录执行docker compose up -d打开http://localhost:6060创建管理员账号支持格式一览EPUB / MOBI / AZW3 / FB2电子书、PDF、CBZ / CBR / CB7漫画、M4B / MP3 / OPUS有声书。若需 OIDC 登录可参考 docs/OIDC-Setup-With-PocketID.md。总结为什么这套架构值得参考维度设计取舍部署极简前后端打进一个 jar单容器 单端口无 Nginx数据可靠Flyway 版本化迁移升级零风险格式全能8 种多媒体格式处理库 原生二进制工具可扩展本地/OIDC/代理鉴权三模式支持 NFS 网络存储模式高性能Java 25 虚拟线程 Caffeine 缓存 前端虚拟滚动Grimmory 证明了一件事自托管图书库不一定要重——Spring Boot Angular MariaDB 的黄金组合配上克制的打包策略就能交付一个开箱即用的家庭数字图书馆 如果你想动手研究可以从 backend/DEVELOPMENT.md 和 frontend/DEVELOPMENT.md 入手官方文档也随源码完整提供。【免费下载链接】grimmoryA self-hosted library for your ebooks, comics, and audiobooks项目地址: https://gitcode.com/gh_mirrors/gr/grimmory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Cesium for Unity 1.9版本包文件导入与配置全攻略 2026/9/25 5:43:18

Cesium for Unity 1.9版本包文件导入与配置全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
SQL Assessment API JSON 配置文件格式完全指南:Check、Probe 与表达式语法详解(sql-server-samples) 2026/9/25 5:43:06

SQL Assessment API JSON 配置文件格式完全指南:Check、Probe 与表达式语法详解(sql-server-samples)

示例工程数据库教程后端 【免费下载链接】sql-server-samples Azure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge 项目地址: https://gitcode.com/gh_mirrors…

阅读更多 →
React Cosmos 技术债全景:依赖锁定、TypeScript 严格性与跨平台包管理的取舍 2026/9/25 5:43:06

React Cosmos 技术债全景:依赖锁定、TypeScript 严格性与跨平台包管理的取舍

开发工具前端测试 【免费下载链接】react-cosmos Sandbox for developing and testing UI components in isolation 项目地址: https://gitcode.com/gh_mirrors/re/react-cosmos 点击查看 免费下载 本文以 React Cosmos 仓库中维护者亲笔记录的技术债文档为主线&am…

阅读更多 →
多智能体框架重构投资决策:TradingAgents实战指南 2026/9/25 5:43:05

多智能体框架重构投资决策:TradingAgents实战指南

1. 这不是“AI选股”,而是一支能开会、吵架、投票的虚拟投研团队你有没有试过在深夜盯着K线图,一边喝着第三杯冷掉的咖啡,一边反复刷新财经新闻?有没有在财报季被十几份PDF压得喘不过气,却仍不确定哪份数据真正值得深挖…

阅读更多 →
神经元衍生AI视频模型:推理提速5倍、成本降80%的工程实践 2026/9/25 5:43:05

神经元衍生AI视频模型:推理提速5倍、成本降80%的工程实践

1. 从"神经元衍生"说起:这个AI视频模型到底在解决什么问题第一次看到"神经元衍生"这个说法,很多人会以为是某种生物计算或者脑科学方向的东西。其实放到AI视频生成这个语境里,它指的是一种从已有神经网络结构中"衍生…

阅读更多 →
影视仓TVBox配置地址与4K播放全链路调优实战指南 2026/9/25 5:42:52

影视仓TVBox配置地址与4K播放全链路调优实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉