/bookshelf

Ebook management system with S3 compatible storage which provides OPDS feed.

Primary LanguageGoMIT LicenseMIT

Bookshelf

Actions Status License Release

Blog post (Japanese)

Bookshelf is a simple ebook management web application. You can easily store and manage your books on a local or S3 compatible storage. This software also provides a OPDS feed which enables you to read your books via any OPDS readers on your computer or smartphone.

Screenshot_2020-09-22 bookshelf

Usage

$ go get github.com/altescy/bookshelf
$ export BOOKSHELF_DB_URL=sqlite3:///`pwd`/data/bookshelf.db
$ export BOOKSHELF_STORAGE_URL=file:///`pwd`/data/files
$ bookshelf

Docker

$ docker pull altescy/bookshelf
$ docker run -d \
    -v `pwd`/data:/data \
    -p 8080:8080 \
    -e BOOKSHELF_DB_URL=sqlite3:///data/bookshelf.db \
    -e BOOKSHELF_STORAGE_URL=file:///data/files \
    altescy/bookshelf

docker-compose

$ git clone https://github.com/altescy/bookshelf.git
$ cd bookshelf
$ cat << EOF > .env
BOOKSHELF_PORT=80
BOOKSHELF_ENABLE_CORS=
BOOKSHELF_DB_URL=postgres://user:password@postgres:5432/bookshelf?sslmode=disable
BOOKSHELF_STORAGE_URL=s3://books
BOOKSHELF_CREATE_NEW_STORAGE=1
BOOKSHELF_AWS_ACCESS_KEY_ID=minio_access
BOOKSHELF_AWS_SECRET_ACCESS_KEY=minio_secret
BOOKSHELF_AWS_S3_REGION=us-east-1
BOOKSHELF_AWS_S3_ENDPOINT_URL=http://minio

MINIO_ACCESS_KEY=minio_access
MINIO_SECRET_KEY=minio_secret
MINIO_HOST=0.0.0.0
MINIO_PORT=9000

POSTGRES_USER=user
POSTGRES_PASSWORD=password
POSTGRES_PORT=5432

TZ=Asia/Tokyo
EOF
$ docker-compose up -d