shemanaev / DotOPDS

Lightweight .NET OPDS server
MIT License
22 stars 10 forks source link
c-sharp dotnet fb2 flibusta opds

DotOPDS: the lightweight OPDS server

DotOPDS is an OPDS server designed for large libraries like full archive of lib.rus.ec or Flibusta.

Features

Getting started

Download latest release and extract somewhere. Copy appsettings.json to appsettings.Production.json and customize it or use any other method to configure ASP.NET Core Application

Settings description:

{
  "Presentation": {
    "DefaultLanguage": "en", // language used to index texts
    "PageSize": 10, // how many items per page to show
    "Title": "DotOPDS Library", // OPDS title
    "LazyInfoExtract": false, // try to extract cover and annotation from book before displaying
    "Converters": [
      {
        "From": "fb2", // file extension
        "To": "epub", // file extension
        "Command": "fb2epub.exe", // path to converter
        "Arguments": "{0} {1}" // {0} - from, {1} - to
      }
    ],
  },
  "IndexStorage": {
    "Path": "./database" // path to database storage
  }
}

Import library index from .inpx file:

DotOPDS import inpx C:\library C:\lib.inpx

To see available import plugins type:

DotOPDS import help
DotOPDS import help inpx # plugin help

Now just start server:

DotOPDS.Server

and OPDS will be available at http://localhost:5000/opds

You always can use help command to get more info.

Docker

Build the image

docker build . -t dotopds

Run the image

docker run -it -p 5000:80 -v databasePath:/app/database dotopds

Manage data in docker

Find container id with docker ps and get into it

docker exec -it CONTAINER_ID /bin/bash

Included plugins

Preparing release