Docker实战 | 使用Docker部署Bibliotheca阅读习惯管理工具

【Docker项目实战】使用Docker部署Bibliotheca阅读习惯管理工具

  • 一、Bibliotheca介绍
    • [1.1 Bibliotheca项目简介](#1.1 Bibliotheca项目简介)
    • [1.2 Bibliotheca主要特点](#1.2 Bibliotheca主要特点)
  • 二、本次实践规划
    • [2.1 本地环境规划](#2.1 本地环境规划)
    • [2.2 本次实践介绍](#2.2 本次实践介绍)
    • [2.3 注意事项](#2.3 注意事项)
  • 三、本地环境检查
    • [3.1 检查Docker服务状态](#3.1 检查Docker服务状态)
    • [3.2 检查Docker版本](#3.2 检查Docker版本)
    • [3.3 检查docker compose 版本](#3.3 检查docker compose 版本)
  • 四、拉取Bibliotheca镜像
  • 五、部署Bibliotheca服务
    • [5.1 创建部署目录](#5.1 创建部署目录)
    • [5.2 编辑部署文件](#5.2 编辑部署文件)
    • [5.3 创建Bibliotheca容器](#5.3 创建Bibliotheca容器)
    • [5.4 查看Bibliotheca容器状态](#5.4 查看Bibliotheca容器状态)
    • [5.5 检查Bibliotheca容器日志](#5.5 检查Bibliotheca容器日志)
  • 六、访问Bibliotheca服务
    • [6.1 访问Bibliotheca初始页](#6.1 访问Bibliotheca初始页)
    • [6.2 在线搜索](#6.2 在线搜索)
    • [6.3 添加书籍](#6.3 添加书籍)
    • [6.4 管理书籍阅读状态](#6.4 管理书籍阅读状态)
  • 七、总结

一、Bibliotheca介绍

1.1 Bibliotheca项目简介

Bibliotheca 是一款基于 Flask 开发的可自托管个人阅读管理工具,帮助用户轻松记录书籍、追踪阅读进度并可视化阅读成果。

1.2 Bibliotheca主要特点

  • 通过输入 ISBN 自动抓取书籍信息与封面,简化图书添加流程。
  • 支持从 Goodreads 导出的 CSV 文件批量导入阅读数据,无缝迁移个人书库。
  • 提供四种阅读状态分类,灵活管理"想读"、"在读"、"已读"等不同阶段的书籍。
  • 记录每日阅读活动,帮助用户养成持续阅读的习惯并追踪阅读频率。
  • 自动生成每月读书总结的视觉化拼图,便于分享阅读成就。
  • 集成 Google Books API,实现快速搜索和精准导入书籍元数据。
  • 采用响应式 Bootstrap 界面设计,适配桌面与移动设备,提升多端使用体验。

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。

hostname IP地址 操作系统版本 Docker版本 部署项目 备注
jeven 192.168.3.88 Ubuntu 24.04.2 LTS 28.5.0 Bibliotheca ------

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;

2.在Docker环境下部署Bibliotheca个人电子图书馆。

2.3 注意事项

  • Bibliotheca 项目定位为阅读追踪与管理工具,不提供书籍内容或在线阅读功能。
  • 请确保在合法合规、能科学上网的网络环境下使用本项目,严格遵守国家关于互联网使用的各项法律法规。
  • 建议通过正规渠道获取图书资源,并配合主流电子书管理软件进行个人阅读管理。
  • 使用过程中请注意个人信息保护,避免访问存在安全风险的网站或下载不明来源的应用程序。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

bash 复制代码
root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: active (running) since Sat 2025-10-04 13:29:05 UTC; 2 days ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 888 (dockerd)
      Tasks: 65
     Memory: 1.2G (peak: 1.4G)
        CPU: 3min 23.296s
     CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

bash 复制代码
root@jeven:~# docker -v
Docker version 28.5.0, build 887030f

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

bash 复制代码
root@jeven:~# docker compose version
Docker Compose version v2.39.4

四、拉取Bibliotheca镜像

下载Bibliotheca容器镜像,镜像名称为:pickles4evaaaa/bibliotheca:1.1.0。

bash 复制代码
docker pull pickles4evaaaa/bibliotheca:1.1.0

五、部署Bibliotheca服务

5.1 创建部署目录

  • 创建部署目录
bash 复制代码
mkdir -p /data/bibliotheca/data &&  cd  /data/bibliotheca

5.2 编辑部署文件

使用docker-cli方式部署,可参考以下命令:

bash 复制代码
docker run -d \
   --restart unless-stopped \
   --name bibliotheca \
   -p 5054:5054 \
   -v $(pwd)/data:/app/data \
   -e TIMEZONE=Asia/Shanghai \
   -e WORKERS=6 \
   pickles4evaaaa/bibliotheca:1.1.0

在部署目录下,创建docker-compose.yaml文件,内容如下所示:

bash 复制代码
vim docker-compose.yaml
yaml 复制代码
version: '3'

services:
  bibliotheca:
    image:  pickles4evaaaa/bibliotheca:1.1.0
    container_name: bibliotheca
    restart: always
    ports:
      - "5054:5054"
    volumes:
      - /data/bibliotheca/data:/app/data
    environment:
      - TIMEZONE=Asia/Shanghai  
      - WORKERS=6  

5.3 创建Bibliotheca容器

执行以下命令,创建Bibliotheca容器。

bash 复制代码
docker compose up -d

5.4 查看Bibliotheca容器状态

检查Bibliotheca容器运行状态,确保Bibliotheca容器正常启动。

bash 复制代码
root@jeven:/data/bibliotheca# docker compose ps
WARN[0000] /data/bibliotheca/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME          IMAGE                              COMMAND                  SERVICE       CREATED          STATUS          PORTS
bibliotheca   pickles4evaaaa/bibliotheca:1.1.0   "sh -c 'gunicorn -w ..."   bibliotheca   51 seconds ago   Up 50 seconds   0.0.0.0:5054->5054/tcp,[::]:5054->5054/tcp

5.5 检查Bibliotheca容器日志

检查容器运行日志,确保Bibliotheca服务正常运行。

bash 复制代码
docker compose logs

六、访问Bibliotheca服务

6.1 访问Bibliotheca初始页

浏览器地址: http://<个人的服务器IP>:5054,访问Bibliotheca初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

6.2 在线搜索

点击"Search Books"选项,填写书籍名称后,确认搜索,可以成功搜索出相关书籍。

6.3 添加书籍

在搜索列表中,我们选择某本书,点击"Add Book "添加到 Library。

6.4 管理书籍阅读状态

我们可以为图书设置"当前阅读""已完成""想读"或"仅限图书馆"等状态,清晰管理阅读进度。同时可记录阅读时间,追踪每日阅读习惯,让阅读更有规划。

七、总结

通过本次实践,我们成功使用Docker部署了Bibliotheca阅读习惯管理工具,实现了对个人阅读进度的高效追踪与管理。整个部署过程简洁流畅,得益于Docker容器化技术的便捷性与可移植性。Bibliotheca界面清晰、功能实用,能够有效帮助用户记录和规划阅读计划。未来可进一步探索其数据备份与多端同步策略,提升使用体验。

相关推荐
万联WANFLOW1 小时前
Docker Hub 镜像拉取慢、timeout 的排查方法
运维·docker·云原生·容器·eureka
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】ChatSDK:CMake构建静态库完整实现
java·开发语言·网络·c++·人工智能·学习·sdk
百度一下吧1 小时前
umi后台管理项目实战:从工程搭建到生产构建
java·前端·javascript
Joe_Wang51 小时前
【从0到1学习JVM · 14】堆内存各区域分工与Xms和Xmx设为一样的真相
java·jvm·学习·垃圾回收
天衍四九-2 小时前
Docker Compose企业实战系列(一):LNMP环境一键部署(Nginx\+MySQL\+PHP)
mysql·nginx·docker
大貔貅喝啤酒2 小时前
Gitea+Jenkins+Docker 搭建 Node 项目 CI/CD 自动部署完整教程
ci/cd·docker·jenkins·js·gitea
.道阻且长.2 小时前
C++11 :右值引用的作用,引用折叠和完美转发
java·开发语言·c++
code2cat2 小时前
Java进阶篇之StampedLock:先读取,再校验,必要时退回读锁
java·开发语言
光依旧2 小时前
MCP实战手记(九):生产化MCP Server的6层安全防护
java·人工智能·spring boot·安全·网络安全·ai agent·mcp