#self-hosted #leptos #axum #audiobook #player #audio-player #server

nightly bin+lib audiobookroom

Audiobookroom,一个简单快速的自托管有声书服务器

2 个版本

0.1.1 2024 年 2 月 11 日
0.1.0 2024 年 2 月 2 日

#1213 in HTTP 服务器

MIT 许可证

350KB
3K SLoC

一个简单且快速的自托管有声书服务器和播放器,完全使用 Rust 编写

这是一个使用 leptos + axum + sea-orm + tailwind 构建的简单爱好项目。它简单但快速

AudiobookShelf 比较

  • 非常快速(这就是我决定为自己编写这个的原因):AudiobookShelf 改变页面需要 1-3 秒,而在 audiobookroom 中,每个操作都完成在 10ms 内。
  • 非常高效的功能:这只是一个音频服务器和音频播放器,没有其他功能(如元数据获取、音频分析)

功能

  • 记录阅读历史和进度。
  • 用户和密码保护。
  • 服务器和客户端非常轻量级,你可以在非常旧的 PC 上运行它。

安装和运行

  1. 克隆此存储库
  2. 准备先决条件
    1. pnpm:该项目使用 tailwindcss,因此需要 pnpm(或 NPM,yarn,任选其一)
    2. cargo-leptos: cargo install cargo-leptos
    3. sea-orm-cli: cargo install sea-orm-cli
    4. just: cargo install just
  3. 安装 node_modules: pnpm -i
  4. 刷新数据库(首次运行时请执行此操作。这将删除所有先前数据): just fresh
  5. 启动服务器:just serve
  6. 查看输出,网站应运行在 http://127.0.0.1:3003

注意事项

  1. 当你使用 cargo leptos serve 运行时,它将读取 Config.toml 中的 leptos 配置。你可以随意更改
  2. 当您手动运行时(请阅读justfile(deploy)以了解如何手动运行)。您应该在.env文件中编写自己的配置(请阅读leptos文档以了解leptos配置的更多信息)
  3. 通常您不应监听127.0.0.1。但如果您监听0.0.0.0,请确保使用反向代理提供https连接: 这一点非常重要

截图

  • 登录 login
  • 播放器 player
  • 添加书籍 addbook

待办事项

  • 还有很多事情未完成...
  • 管理当前用户
  • 为作者和书籍实现配置文件。
  • 美化UI
  • ...

依赖项

~20–43MB
~743K SLoC