Bookshelf 是一个面向个人的 C/S 端书架应用,可以将书籍保存在服务端,然后通过浏览器查阅这些书籍。
后端采用 Go 语言 + beego 框架实现,前端使用 jquery/jquery ui/bootstrap 等框架实现。
- 格式支持:gitbook/pdf/epub/markdown/txt/html/网页链接
- 上传:后台上传,批量上传,失败重传,停止上传,拖拽上传(拖到当前目录上传,拖到当前子目录上传)
- 下载:支持下载 pdf/epub/markdown/txt/html 格式文件到本地
- 远程下载:支持通过 url 远程下载 gitbook,pdf,txt,epub 书籍到服务端
- 管理:支持 复制/剪切/粘贴/删除/重命名 等操作(包括快捷键)
- 用户管理:支持单用户,只有登陆后的用户才允许管理书籍
- 浏览模式:支持两种浏览模式:图标模式/详情模式
- 分享:支持通过二维码分享,或直接通过二维码打开/下载书籍
- 搜索:支持搜索功能,允许搜索所有直接支持的书籍格式
上面提到的支持的格式,都是支持直接使用内置的阅读器在浏览器打开阅读,各个格式的阅读器如下:
- txt: txt-web,项目地址: https://github.com/Lt0/txt-web
- pdf: pdf.js,项目地址:https://github.com/mozilla/pdf.js/
- epub: epub.js,项目地址:https://github.com/futurepress/epub.js/
- markdown: editor.md,项目地址:https://pandao.github.io/editor.md/
- gitbook: 使用 gitbook 自带的阅读器
- html: 直接在浏览器打开
bookshelf 默认提供 docker 镜像,可以直接运行:
docker run -p 80:80 -it lightimehpq/bookshelf
docker run -d --restart=always --name=bookshelf -p <host_port>:80 --env password=<admin_password> -v <host_books_dir>:/opt/bookshelf/books -it lightimehpq/bookshelf
说明:
- <host_port> 表示实际的访问端口
- <admin_password> 表示书架的登陆密码,如果不设置,则默认为 admin
- <host_books_dir> 表示要挂载到物理机的目录,所有的书籍都保存在这个目录
docker run -d --restart=always --name=bookshelf -p 8080:80 --env password=admin -v /books:/opt/bookshelf/books -it lightimehpq/bookshelf
docker run --rm lightimehpq/bookshelf -h
如果要在树莓派等 arm64 架构的开发板上运行, 可以使用 lightimehpq/bookshelf-arm64 镜像, 只需要在镜像名后添加 -arm64 后缀即可, 其它使用方式完全相同:
docker run -p 80:80 -it lightimehpq/bookshelf-arm64
docker run -d --restart=always --name=bookshelf -p <host_port>:80 --env password=<admin_password> -v <host_books_dir>:/opt/bookshelf/books -it lightimehpq/bookshelf-arm64
docker run --rm lightimehpq/bookshelf-arm64 -h
拖拽上传
上传编辑界面
上传任务列表
二维码分享/打开
txt 阅读器-章节列表
txt 阅读器-主题定制
txt 阅读器-书签
epub 阅读器
gitbook 阅读器
markdown 阅读器
pdf 阅读器