dir2opds inspects the given folder and serves an OPDS 1.1 compliant server.
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:
go install github.com/dubyte/dir2opds@latest
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")
-hide-dot-files
Hide files that starts with dot.
-host string
The server will listen in this host. (default "0.0.0.0")
-no-cache
adds reponse headers to avoid client from caching.
-port string
The server will listen in this port. (default "8080")
cd && mkdir dir2opds && cd dir2opds
# get the binary
wget https://github.com/dubyte/dir2opds/releases/download/v1.1.0/dir2opds_1.1.0_linux_armv7.tar.gz
tar xvf dir2opds_1.1.0_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