Go to file
2021-05-06 03:20:53 -04:00
.github/workflows add unittests 2021-05-06 02:48:02 -04:00
internal/service add placeholder in emptyFolder so it can be created. 2021-05-06 02:54:08 -04:00
opds add unittests 2021-05-06 02:48:02 -04:00
.gitignore update .gitignore 2021-05-06 00:38:14 -04:00
.goreleaser.yml adding goarm 6 to gorelease 2021-05-06 00:33:57 -04:00
CHANGELOG.md updating changelog 2021-05-06 02:59:28 -04:00
go.mod add unittests 2021-05-06 02:48:02 -04:00
go.sum add unittests 2021-05-06 02:48:02 -04:00
LICENSE Initial commit 2017-03-03 21:05:37 -05:00
main_test.go add unittests 2021-05-06 02:48:02 -04:00
main.go add unittests 2021-05-06 02:48:02 -04:00
README.md change order in readme 2021-05-06 03:20:53 -04:00

dir2opds - serve books from a directory

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

Overview

There are good options to serve books using OPDS. Calibre is good for that but if your server is headless, install Calibre doesn't seem to be the best option.

That is why calibre2opds exists, but if you have too many books and you don't want to create a Calibre library dir2opds could help you to have an OPDS server from a directory with one condition:

  • A folder should have only folders or only files.

Change log

Installation

go get -u github.com/dubyte/dir2opds

Usage

dir2opds -dir ./books -port 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.9_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