An audiobook library cleanup & management app, written as a frontend for web use of m4b-merge.
Bragi - (god of poetry in Norse mythology): Bragibooks provides a minimal and straightforward webserver that you can run remotely or locally on your server. Since Bragibooks runs in a docker, you no longer need to install dependencies on whichever OS you are on. You can
Some basics of what Bragi does:
Folder/file selection | ASIN input |
---|---|
Folder/file selection | Post-proccess overview |
---|---|
You can either install this project directly or run it prepackaged in Docker.
pip install -r requirements.txt
from this project's directory.To run Bragibooks as a container, you need to pass some paramaters in the run command:
Parameter | Function |
---|---|
-v /path/to/input:/input |
Input folder |
-v /path/to/output:/output |
Output folder |
-v /appdata/bragibooks/config:/config |
Persistent config storage |
-p 8000:8000/tcp |
Port for your browser to use |
-e LOG_LEVEL=WARNING |
Choose any logging level |
-e DEBUG=False |
Turn django debug on or off (default False) |
-e UID=99 |
User ID to run the container as (default 99) |
-e GID=100 |
Group ID to run the container as (default 100) |
-e CELERY_WORKERS=1 |
The number or celery workers for processing books (default 1) |
-e CSRF_TRUSTED_ORIGINS=https://bragibooks.mydomain.com |
Domains to trust if bragibooks is hosted behind a reverse proxy. |
Which all together should look like:
docker run --rm -d --name bragibooks -v /path/to/input:/input -v /path/to/output:/output -v /appdata/bragibooks/config:/config -p 8000:8000/tcp -e LOG_LEVEL=WARNING ghcr.io/djdembeck/bragibooks:main
version: '3'
services:
bragi:
image: ghcr.io/djdembeck/bragibooks:main
container_name: bragibooks
environment:
- CSRF_TRUSTED_ORIGINS=https://bragibooks.mydomain.com
- LOG_LEVEL=INFO
- DEBUG=False
- UID=1000
- GID=1000
volumes:
- path/to/config:/config
- path/to/input:/input
- path/to/output/output:/output
- path/to/done:/done
ports:
- 8000:8000
restart: unless-stopped
python manage.py collectstatic
python manage.py migrate
celery -A bragibooks_proj worker \
--loglevel=info \
--concurrency 1 \
-E
gunicorn bragibooks_proj.wsgi \
--bind 0.0.0.0:8000 \
--timeout 1200 \
--worker-tmp-dir /dev/shm \
--workers=2 \
--threads=4 \
--worker-class=gthread \
--reload \
--enable-stdio-inheritance
The Bragibooks process is a linear, 3 step process:
@djdembeck - Idea & Initial work
Thanks goes to these wonderful people (emoji key):
Koby Huckabee š» š¤ š |
Andreas š§ |
This project follows the all-contributors specification. Contributions of any kind welcome!