Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.8.0] - 2026-03-28

### Added

- **Pagination** — `-page-size` flag to control entries per page (default: 50, max: 200). Feeds include `first`, `previous`, `next`, `last` navigation links.
- **ETag/Last-Modified caching** — `-enable-cache` flag for conditional requests (304 Not Modified) to reduce bandwidth.
- **Gzip compression** — `-gzip` flag to compress responses and reduce bandwidth.
- **Health endpoint** — `/health` endpoint returning `{"status":"ok"}` for monitoring and load balancers.
- **EPUB cover extraction** — `-extract-metadata` now extracts cover images from EPUB files and serves them via `/cover?file=` endpoint.
- **Recommended configuration** — README section with suggested flags for best experience.

### Changed

- `-extract-metadata` now extracts covers from EPUB files in addition to title/author.
- Removed separate `-extract-covers` flag (consolidated into `-extract-metadata`).

## [1.7.0] - 2026-03-26

### Added
Expand Down
20 changes: 10 additions & 10 deletions INSTALLATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Download binaries for Linux, macOS, Windows, and other platforms from the [Relea
## Docker

```bash
docker pull ghcr.io/dubyte/dir2opds:v1.7.0
docker pull ghcr.io/dubyte/dir2opds:v1.8.0
```

```bash
Expand All @@ -20,17 +20,17 @@ docker run \
-p 8080:8080 \
-v ./books:/books \
--name dir2opds \
ghcr.io/dubyte/dir2opds:v1.7.0
ghcr.io/dubyte/dir2opds:v1.8.0
```

Use a specific [release](https://github.com/dubyte/dir2opds/releases) tag instead of `v1.7.0` if needed. Thanks to [rockavoldy](https://hub.docker.com/u/rockavoldy) for the run example.
Use a specific [release](https://github.com/dubyte/dir2opds/releases) tag instead of `v1.8.0` if needed. Thanks to [rockavoldy](https://hub.docker.com/u/rockavoldy) for the run example.

## Podman

**Pre-built image:**

```bash
podman pull ghcr.io/dubyte/dir2opds:v1.7.0
podman pull ghcr.io/dubyte/dir2opds:v1.8.0
```

**Build from source:**
Expand All @@ -49,7 +49,7 @@ podman run \
-p 8080:8080 \
-v ./books:/books \
--name dir2opds \
ghcr.io/dubyte/dir2opds:v1.7.0
ghcr.io/dubyte/dir2opds:v1.8.0
```

**Rootless** (e.g. non-root user, SELinux): use a bind mount with the `Z` option and keep the user namespace:
Expand All @@ -64,18 +64,18 @@ podman run \
-p 8080:8080 \
-v /data/Books:/books:Z \
--name dir2opds \
ghcr.io/dubyte/dir2opds:v1.7.0
ghcr.io/dubyte/dir2opds:v1.8.0
```

Add `-debug` for request logging, e.g. `... ghcr.io/dubyte/dir2opds:v1.7.0 /dir2opds -debug`.
Add `-debug` for request logging, e.g. `... ghcr.io/dubyte/dir2opds:v1.8.0 /dir2opds -debug`.

## Raspberry Pi (binary + systemd)

```bash
cd && mkdir dir2opds && cd dir2opds
# Replace v1.7.0 and the asset name with the release that matches your system
wget https://github.com/dubyte/dir2opds/releases/download/v1.7.0/dir2opds_1.7.0_linux_armv7.tar.gz
tar xvf dir2opds_1.7.0_linux_armv7.tar.gz
# Replace v1.8.0 and the asset name with the release that matches your system
wget https://github.com/dubyte/dir2opds/releases/download/v1.8.0/dir2opds_1.8.0_linux_armv7.tar.gz
tar xvf dir2opds_1.8.0_linux_armv7.tar.gz

sudo nano /etc/systemd/system/dir2opds.service
# Paste the unit below, then set the full path of your books folder in -dir
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@

## Quick start

Using Docker (replace `v1.7.0` with the [latest release](https://github.com/dubyte/dir2opds/releases) if desired):
Using Docker (replace `v1.8.0` with the [latest release](https://github.com/dubyte/dir2opds/releases) if desired):

```bash
docker run -d -p 8080:8080 -v ./books:/books --name dir2opds ghcr.io/dubyte/dir2opds:v1.7.0
docker run -d -p 8080:8080 -v ./books:/books --name dir2opds ghcr.io/dubyte/dir2opds:v1.8.0
```

Then open `http://localhost:8080` in an OPDS client or browser.
Expand Down
Loading