82 lines
2.3 KiB
Markdown
82 lines
2.3 KiB
Markdown
# 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](./screenshots/booklist.png)
|
|
Book detail
|
|
![bookdetail](./screenshots/bookdetail.png)
|
|
navbar
|
|
![nav](./screenshots/navbar.png)
|
|
Adanced search
|
|
![booklist](./screenshots/search.png)
|
|
# 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/](http://localhost:8089/) to see live graphs, tweak the number of users and more.
|
|
|
|
|
|
# Finished Features
|
|
|
|
- [x] Books
|
|
- [x] navbar with tags, series, authors, etc
|
|
- [x] Search
|
|
- [x] authentication
|
|
- [x] Cache
|
|
- [x] logging
|
|
- [x] deploy instructions
|
|
|
|
# TODO ROADMAP
|
|
- [ ] cache with vary headers
|
|
- [ ] localisation
|
|
- [ ] Beautifying template (only works well on 720p, no other viewports)
|
|
- [ ] Setup email functionality
|
|
|
|
|
|
|
|
|
|
|