A Docker container for cataloging audiobooks, intended for use on an Unraid server. Uses Sequelize with a SQLite database and Fastify on the backend, and Preact on the frontend.
LOG_LEVEL: Optional. Passed to pino. Sanitized: options aretrace,debug,info,warn,error. Defaults toinfo.
- The directory for audiobooks to be organized and stored should be mounted at
/audiobooks. - The directory where the database will be stored should be mounted at
/db. - The directory where imports go should be mounted at
/import.
Certain command-line utilities are included in the container (located at
.build/bin). They will respond to -h/--help for more information:
removeTag: For safety, tags can only be deleted through the UI if they are not associated with any audiobooks. This utility can be used to remove one or multiple tags, including those associated with audiobooks (with-f).
.audiobooks and .import will be mounted at /audiobooks and /import
respectively, and are gitignored; you can use them to work in a local
environment.
This repo adhere's to GitHub's Scripts to Rule Them All pattern.
script/cmd: executes a Docker command with all the extra configuration needed for this project. Most other scripts usescript/cmdunder the hood.script/setup: creates a new Docker image for dev, ignoring cachescript/update: builds the dev Docker image, using cache if possible. In most cases,script/updateis all you need andscript/setupis unnecessary.script/migrate: exposes the Umzug CLI inside the dev container. If no arguments are passed,upis assumed.script/server: runsscript/updateand then starts dev server inside generated Docker image. Server will be visible at http://localhost:6541.script/test: runsscript/updateand runsnpm testinside it. Extra arguments will be passed as arguments tonpm test, e.g.script/test -uto update Jest snapshots.
