Skip to content

dubyte/dir2opds

Repository files navigation

dir2opds - serve books from a directory

dir2opds inspects the given folder and serves an OPDS 1.1 compliant server.

Overview

There are good options for serving books using OPDS. Calibre is a popular choice, but if you have a headless server, installing Calibre might not be the best option.

That's where calibre2opds comes in. However, if you have a large number of books and don't want to create a Calibre library, dir2opds can help you set up an OPDS server from a directory with one condition:

  • A folder should contain either only folders or only files.

Change log

Installation

go install github.com/dubyte/dir2opds@latest

Usage

Usage of dir2opds:
  -calibre
      Hide files stored by calibre
  -debug
      If it is set, it will log the requests
  -dir string
      A directory with books (default "./books")
  -host string
      The server will listen in this host (default "0.0.0.0")
  -port string
      The server will listen in this port (default "8080")

Tested on

  • Moon+ reader

More information

Binary release

Raspberry pi deployment using binary release

cd && mkdir dir2opds && cd dir2opds

# get the binary
wget https://github.com/dubyte/dir2opds/releases/download/v0.0.10/dir2opds_0.0.10_Linux_ARMv7.tar.gz

tar xvf dir2opds_0.0.10_Linux_ARMv7.tar.gz

sudo touch /etc/systemd/system/dir2opds.service

# Paste the content below but rember to pass the fullpath of your books in -dir
sudo nano /etc/systemd/system/dir2opds.service

sudo systemctl enable dir2opds.service

sudo systemctl start dir2opds.service

/etc/systemd/system/dir2opds.service

[Unit]
Description=dir2opds
Documentation=https://github.com/dubyte/dir2opds
After=network-online.target

[Service]
User=pi
Restart=on-failure

ExecStart=/home/pi/dir2opds/dir2opds -dir <FULL PATH OF BOOKS FOLDER> -port 8080

[Install]
WantedBy=multi-user.target

How to contribute

Special thanks

  • @clach04: for testing and report missing content type for comics.
  • @masked-owl: for reporting security issue about http transversal.