AnthoLume/README.md

3.3 KiB

Book Manager


This is BookManager! Will probably be renamed at some point. This repository contains:

  • KOReader KOSync Compatible API
  • KOReader Plugin (See client subfolder)
  • WebApp

In additional to the compatible KOSync API's, we add:

  • Additional APIs to automatically upload reading statistics
  • Automatically upload documents to the server (can download in the "Documents" view)
  • Automatic book cover metadata scraping (Thanks OpenLibrary)
  • No JavaScript! All information is rendered server side.

Server

Configuration

Environment Variable Default Value Description
DATABASE_TYPE SQLite Currently only "SQLite" is supported
DATABASE_NAME bbank The database name, or in SQLite's case, the filename
DATABASE_PASSWORD Currently not used. Placeholder for potential alternative DB support
CONFIG_PATH /config Directory where to store SQLite's DB
DATA_PATH /data Directory where to store the documents and cover metadata
LISTEN_PORT 8585 Port the server listens at
REGISTRATION_ENABLED false Whether to allow registration (applies to both WebApp & KOSync API)
COOKIE_SESSION_KEY Optional secret cookie session key (auto generated if not provided)

Client (KOReader Plugin)

See documentation in the client subfolder: SyncNinja

Development

SQLC Generation (v1.21.0):

go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
~/go/bin/sqlc generate

Run Development:

CONFIG_PATH=./data DATA_PATH=./data go run cmd/main.go serve

Building

The Dockerfile and Makefile contain the build information:

# Build Local Docker Image
make docker_build_local

# Push Latest
make docker_build_release_latest

If manually building, you must enable CGO:

# Download Dependencies
go mod download

# Compile (Binary `./bookmanager`)
CGO_ENABLED=1 CGO_CFLAGS="-D_LARGEFILE64_SOURCE" go build -o /bookmanager cmd/main.go

Notes