ToB企服应用市场:ToB评测及商务社交产业平台

标题: 个人电子书库管理器Biblioteca [打印本页]

作者: 渣渣兔    时间: 2024-12-28 16:38
标题: 个人电子书库管理器Biblioteca

简介

什么是 Biblioteca
   Biblioteca 是一个用于管理大型电子书库的网络应用程序。它旨在提供一个简朴易用的界面,帮助用户有效地管理个人图书馆。是 Calibre 和其他类似软件的替代品。
  重要特点:

Biblioteca 是一个开源项目,使用 GPL-3.0 允许证,旨在为用户提供一致和良好分类的图书馆管理体验。
作者之所以创建 Biblioteca,是因为想要一个简朴易用的图书馆管理器,但又对现有的解决方案不满足,所以决定自己做。
安装

在群晖上以 Docker 方式安装。
须要注意的是,群晖内核版本太低会碰到下面的错误,这个 AH00141 已经碰到多次了,老苏除了换机器,也没找到其他的办法;
  1. Function not implemented: AH00141: Could not initialize random number generator
复制代码
官方镜像发布在 ghcr.io,最新版本是 0.6

服务涉及到多个容器,采用 docker-compose 方式安装
env.txt

env.txt 是软件的环境变量,直接采用了官方的 prod 版本的 .env 的内容,未做任何修改
源文件地址:https://github.com/biblioverse/biblioteca/blob/main/.env
  1. # In all environments, the following files are loaded if they exist,
  2. # the latter taking precedence over the former:
  3. #
  4. #  * .env                contains default values for the environment variables needed by the app
  5. #  * .env.local          uncommitted file with local overrides
  6. #  * .env.$APP_ENV       committed environment-specific defaults
  7. #  * .env.$APP_ENV.local uncommitted environment-specific overrides
  8. #
  9. # Real environment variables win over .env files.
  10. #
  11. # DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
  12. # https://symfony.com/doc/current/configuration/secrets.html
  13. #
  14. # Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
  15. # https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
  16. ###> symfony/framework-bundle ###
  17. APP_ENV=prod
  18. APP_SECRET=9653a6c476d291323d2db7417c13a814
  19. ###< symfony/framework-bundle ###
  20. ###> doctrine/doctrine-bundle ###
  21. # Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
  22. # IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
  23. #
  24. # DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
  25. # DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8&charset=utf8mb4"
  26. DATABASE_URL="mysql://db:db@db:3306/db?serverVersion=mariadb-10.3.39&charset=utf8"
  27. ###< doctrine/doctrine-bundle ###
  28. ###> symfony/messenger ###
  29. # Choose one of the transports below
  30. # MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages
  31. # MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages
  32. MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
  33. ###< symfony/messenger ###
  34. ###> symfony/mailer ###
  35. MAILER_DSN=native://default
  36. ###< symfony/mailer ###
  37. # .env
  38. TYPESENSE_URL=http://typesense:8108
  39. TYPESENSE_KEY=xyz
  40. BOOK_FOLDER_NAMING_FORMAT="{authorFirst}/{author}/{serie}/{title}"
  41. BOOK_FILE_NAMING_FORMAT="{serie}-{serieIndex}-{title}"
  42. ###< kobo/proxy
  43. KOBO_PROXY_USE_DEV=0
  44. KOBO_PROXY_USE_EVERYWHERE=0
  45. KOBO_PROXY_ENABLED=1
  46. ###< kobo/proxy
复制代码
可变值APP_ENV应用程序运行的环境。可以是 dev 或 prod。除非须要调试应用程序,否则应始终使用 prod。APP_SECRET用于保护应用程序的密钥。请确保它是唯一的!DATABASE_URL数据库的 URL。除非使用差别的数据库,否则您不须要更改此项。MESSENGER_TRANSPORT_DSN不要更改它。MAILER_DSN当前未使用。TYPESENSE_URLTypesense 服务器的 URL。除非使用差别的服务器,否则您不须要更改此项。TYPESENSE_KEY访问 Typesense 服务器的密钥。须要与您在 docker-compose 文件中设置的密钥相对应。BOOK_FOLDER_NAMING_FORMAT用于命名存储册本的文件夹的格式。可以使用以下占位符:{authorFirst}, {author}, {title}, {serie}。BOOK_FILE_NAMING_FORMAT用于命名存储册本的文件的格式。可以使用以下占位符:{serie}, {serieIndex}, {title}。KOBO_PROXY_USE_DEV如果设置为 1,将在开发中使用 Kobo 署理。KOBO_PROXY_USE_EVERYWHERE如果设置为 1,将在任何地方使用 Kobo 署理,并将所有请求转发到原始商店。KOBO_PROXY_ENABLED如果设置为 0,将禁用 Kobo 署理。ALLOW_BOOK_RELOCATION如果设置为 0,添加到库中的册本将不会移动到准确的文件夹。这在您想要自己管理文件夹布局时很有用。 关于环境变量的官方说明:https://biblioverse.github.io/biblioteca-doc/installing/dotenv-config
docker-compose.yml

docker-compose.yml 基于官方的版本举行了微调
  1. services:
  2.   biblioteca:
  3.     image: ghcr.io/biblioverse/biblioteca:main
  4.     container_name: biblioteca-web
  5.     command: ["/bin/sh", "-c" , "apache2-foreground" ]
  6.     ports:
  7.       - 8109:8080
  8.     depends_on:
  9.       - db
  10.     stdin_open: true
  11.     tty: true
  12.     volumes:
  13.       - ./covers:/var/www/html/public/covers
  14.       - ./books:/var/www/html/public/books
  15.       - ./media:/var/www/html/public/media
  16.       - ./env.txt:/var/www/html/.env
  17.   
  18.   db:
  19.     image: mariadb:10.10
  20.     container_name: biblioteca-mariadb
  21.     environment:
  22.       - MYSQL_ROOT_PASSWORD=db
  23.       - MYSQL_DATABASE=db
  24.       - MYSQL_USER=db
  25.       - MYSQL_PASSWORD=db
  26.     volumes:
  27.       - ./db:/var/lib/mysql
  28.   typesense:
  29.     image: typesense/typesense:27.1
  30.     container_name: biblioteca-typesense
  31.     restart: on-failure
  32.     ports:
  33.       - 8983
  34.       - 8108
  35.     volumes:
  36.       - ./data:/data
  37.     command: '--data-dir /data --api-key=xyz --enable-cors'
复制代码
然后实行下面的命令
  1. # 新建文件夹 biblioteca 和 子目录
  2. mkdir -p /volume2/docker/biblioteca/{books,covers,data,db,media}
  3. # 进入 biblioteca 目录
  4. cd /volume2/docker/biblioteca
  5. # 修改目录权限
  6. chmod a+rw {books,covers,media}
  7. # 将 docker-compose.yml 放入当前目录
  8. # 一键启动
  9. docker-compose up -d
复制代码

如果不出意外的话,会有 3 个容器启动

运行

在浏览器中输入 http://群晖IP:8109 就能看到登录界面

如果任意输入,会表现错误,因为现在还没有 db.user 表
  1. 500 Internal Server Error
  2. An exception occurred while executing a query: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db.user' doesn't exist
复制代码

导入数据

依次实行下面的命令创建数据库并新建管理员账号
  1. # 创建数据库
  2. docker-compose exec biblioteca bin/console doctrine:migration:migrate --no-interaction
  3. # 创建管理员用户
  4. docker-compose exec biblioteca bin/console app:create-admin-user [name] [password]
  5. # 示例
  6. docker-compose exec biblioteca bin/console app:create-admin-user admin 123456
  7. # 创建 Typesense 索引
  8. docker-compose exec biblioteca bin/console typesense:create
复制代码

登录成功后的主界面

汉化

老苏基于官方的 translations 做了汉化文件,可以在这里下载:https://github.com/wbsu2003/synology/raw/refs/heads/main/Biblioteca/translations.zip
将其放入 biblioteca 根目次

解压到当前目次

现在的 translations 目次

现在实行下面的命令,先将文件复制到容器内
  1. # 讲中文复制到容器中
  2. docker cp ./translations/. biblioteca-web:/var/www/html/translations
  3. # 清除应用的缓存
  4. docker-compose exec biblioteca bin/console cache:clear
复制代码
然后清除缓存,否则有可能界面不会有变化

进入 My Profile --> Langue,选择法文

生存之后,刷新页面,虽然并不全部是中文,但是根本上已经可以看懂了

册本

左侧的 上传,先选择文件,再点 Upload 上传

须要点 Consume

才能在 所有册本 中找到

可以上传封面,也可以从文件中提取封面

可以下载,也可以在网页中阅读

书架

左侧的 编辑书架 --> 新书架

创建完成后

可以将册本放入书架

现在你的书架上就有书了

Biblioteca 现在还在比力早期,Bug 还有点多,像有些电子书,在从文件中提取封面时,比力轻易碰到 500 Internal Server Error

参考文档

   biblioverse/biblioteca: Biblioteca is a web application made to manage large ebook libraries and is developed aiming to help you to have consistent and well classified libraries.
地址:https://github.com/biblioverse/biblioteca
    Biblioteca Book Management | Biblioteca Docs
地址:https://biblioverse.github.io/biblioteca-doc/

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4