#ebook #comics #epub #web-ui #cbz #directories #compression

app eloran

使用Rust编写的漫画和电子书Web库,具有阅读、搜索、阅读状态和书签功能

3个不稳定版本

0.2.0 2023年12月9日
0.1.1 2023年6月24日
0.1.0 2023年6月24日

#58多媒体

自定义许可证GPL-3.0 许可证

1MB
3.5K SLoC

Eloran

使用Rust编写的漫画和电子书Web库,具有阅读、搜索、阅读状态和书签...

简介

我在过去的几年里使用了Ubooquity,但遗憾的是它不是开源的,并且没有阅读状态,所以我决定寻找另一种解决方案。

我尝试了一些替代方案

  • Komga:我认为这是最好的项目,但没有“文件夹视图”😥
  • Tanoshi:工作良好,也是在Rust中🦀🚀,但没有对电子书的支持
  • Calibre webBicBucStriim:我只是无法使用Calibre的分类系统
  • Kavita:也是一个很好的项目,但我不喜欢集合系统(感觉像Calibre)
  • Nextcloud epubreader:一个旧的应用程序,但它不能与我的大部分收藏夹一起工作

所以,我有了这个名为我的孩子的个人项目(EloraRevan)。

请随意使用、改进并向我的低代码质量哭泣!

  • 使用sqlite数据库
  • 将电子书和漫画封面存储在数据库中(每个封面约10ko,15000个文件约160 Mo)
  • 多用户,带有书签页面、阅读状态和页码(不适用于PDF),argon2散列密码
  • 定期扫描库文件夹
  • 无缓存数据,漫画图像会即时提取
  • 漫画页面响应式大小,以优化移动网络使用
  • 小型二进制文件:5 Mio,基于alpine的镜像:13 Mio
  • 小型CSS,小型压缩SVG,无JavaScript
  • rust 🦀🚀

屏幕截图

我知道这很糟糕 🤮,我还没有处理CSS,请耐心等待(或帮助我 🆘)!

grid view file info reading

安装

Podman / Docker

请随意自定义监听端口和路径...

podman pull ghcr.io/thasos/eloran:latest
podman run -d -p 0.0.0.0:3200:3200 \
    -v /host_data/eloran/sqlite:/opt/eloran/sqlite \
    -v /host_data/library:/library \
    --name eloran \
    ghcr.io/thasos/eloran:latest

从源码

目前需要css目录,因此最简单的方法是克隆源代码并使用cargo构建它,可用的二进制文件和Docker镜像将很快可用。

git clone https://github.com/thasos/eloran.git
cd eloran
just build
target/x86_64-unknown-linux-gnu/release/eloran

如果您没有使用 just,可以使用它 😁 或者直接运行 cargo build --release

构建依赖项

Nix

nix-shell shell.nix

Arch

sudo pacman -S libarchive cairo poppler-glib
# if you want to package it in alpine image
sudo pacman -S musl

Debian/ubuntu

sudo apt install libarchive-dev libcairo2-dev libpoppler-glib-dev
# if you want to package it in alpine image
sudo apt install musl-dev

Fedora

sudo dnf install rust-glib-sys-devel.noarch
sudo dnf install rust-cairo-sys-rs0.16-devel.noarch
sudo dnf install cairo-gobject-devel.x86_64
sudo dnf install poppler-glib-devel.x86_64
sudo dnf install libarchive-devel.x86_64

待办事项

  • 修改时正确更新文件
  • 在数据库中哈希密码 !!
  • 在数据库中存储会话(参见 fn create_router()src/http_server.rs
  • 漂亮的错误处理
  • 更多测试
  • library_path 中允许相对路径
  • 修复子目录的元素编号
  • 处理目录中的 cover.jpg 文件(或使用第一个文件的封面?)
  • 自定义CSS
  • 上传文件
  • 首次启动时安装页面:管理员密码、library_path、新用户...
  • 共享文件(或目录,或页面)
  • 在首选项中显示网格或列表视图
  • 在读取、文件信息和网格视图中显示进度条
  • 在阅读和从文件信息中轻松转到页面编号
  • 在新标签页中阅读PDF
  • 在书签页面中显示阅读状态
  • 更好的CSS 🤪
  • 真正的电子书阅读
  • 导出阅读状态
  • 列出“接下来要读”

依赖项

~88MB
~1.5M SLoC