Skip to content

Latest commit

 

History

History
61 lines (46 loc) · 2.89 KB

README.md

File metadata and controls

61 lines (46 loc) · 2.89 KB

Audiobook Catalog logo Audiobook Catalog

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.

Environment Variables

  • LOG_LEVEL: Optional. Passed to pino. Sanitized: options are trace, debug, info, warn, error. Defaults to info.

Mount Paths

  • 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.

Utilities

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).

Development

.audiobooks and .import will be mounted at /audiobooks and /import respectively, and are gitignored; you can use them to work in a local environment.

Scripts

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 use script/cmd under the hood.
  • script/setup: creates a new Docker image for dev, ignoring cache
  • script/update: builds the dev Docker image, using cache if possible. In most cases, script/update is all you need and script/setup is unnecessary.
  • script/migrate: exposes the Umzug CLI inside the dev container. If no arguments are passed, up is assumed.
  • script/server: runs script/update and then starts dev server inside generated Docker image. Server will be visible at http://localhost:6541.
  • script/test: runs script/update and runs npm test inside it. Extra arguments will be passed as arguments to npm test, e.g. script/test -u to update Jest snapshots.