Go to file
2020-08-02 11:56:32 -03:00
CalibreWebCompanion logging, deployment stuff and readme 2020-08-02 11:21:43 -03:00
deployment some readme stuff 2020-08-02 11:54:47 -03:00
loadtesting deployment, and some load testing 2020-08-01 23:51:34 -03:00
screenshots logging, deployment stuff and readme 2020-08-02 11:21:43 -03:00
.gitignore fixed book download, linux path is case sensitive 2020-08-01 20:07:09 -03:00
README.md some readme stuff 2020-08-02 11:54:47 -03:00
requirements.txt deployment, and some load testing 2020-08-01 23:51:34 -03:00

What is CalibreWebAlternative?

This is a web server to the popular book management application Calibre. We found that the builtin webserver was kinda shit, so we're building our own. (make this friendlier later)

Features

  • navbar with tags, series, authors, etc
  • Search by author, identifier, title
  • authentication

Some screenshots

Here's how the various lists look like booklist Book detail bookdetail navbar nav Adanced search booklist

requirements

Django 3.0
Calibre 4.13 (I have not tested it with anything else atm, will be resolved later)

how to use:

  1. clone repo
  2. Remove the .bak from ./CalibreWebCompanion/settings.json.bak and db.sqlite3.bak
  3. Edit ./CalibreWebCompanion/settings.json. Definitely change the secret key
  4. Not sure if the db needs to be regenerated, but we'll see later !!!!!!!!!!
  5. pip install -r requirements.txt
  6. install gunicorn and nginx
  7. move this nginx.conf to /etc/nginx
  8. make whatever user nginx runs as (in this case, massiveatoms) the owner of calibredir
  9. give execute permissions to parent of calibredir
  10. cd to repo, run gunicorn CalibreWebCompanion.wsgi
  11. start nginx sudo systemctl restart nginx

./CalibreWebCompanion
run ./manage.py runserver

Ignore pretty much everything below if you're not working on the project

Profiling

To do profiling, you have to create some dummy users
Unbakify a file ./loadtesting/dummyusers.json.bak and fill in the credentials for the dummy users

While django is running, open another shell and cd to ./loadtesting and run ./bench.py To have a more interactive session, comment out

run-time = 2m
headless = true

in locust.conf, and then run ./bench.py You can then go to http://localhost:8089/ to see live graphs, tweak the number of users and more.

Finished Features

  • Books
  • navbar with tags, series, authors, etc
  • Search
  • authentication
  • Cache
  • logging
  • deploy instructions

TODO ROADMAP

  • cache with vary headers
  • localisation
  • Beautifying template (only works well on 720p, no other viewports)
  • Setup email functionality