The Shelf

Configuration

The Shelf is configured entirely through environment variables, set in your .env file or compose file.

VariablePurpose
DATABASE_URLPostgreSQL connection string. Required.
DATA_DIRWhere uploaded images are stored. Default ./data (/data in the container).
BGG_API_TOKENBoardGameGeek API token. Enables the title lookup on the add-game form.
COOKIE_SECURESet to true when the app is served over HTTPS.
AUTO_MIGRATESet to false to skip database migrations on start.
TRASH_RETENTION_DAYSDays a deleted item stays in the trash before it is removed for good. Default 30. 0 keeps items until an admin deletes them.

Trash

Deleting a game, copy, play, wishlist item, place or player moves it to the trash. An admin can restore it or delete it for good, and anything older than TRASH_RETENTION_DAYS is purged automatically. A game that still has copies cannot be deleted.

BoardGameGeek lookup

Optional. With BGG_API_TOKEN set, the “Look up” button on the add-game form searches the BoardGameGeek XML API and can prefill the title, a short description, player counts, play time, minimum age, complexity, up to six categories and the cover image.

  • Lookups happen only on demand, when a signed-in, non-restricted member searches. There is no bulk crawling, background syncing or scheduled polling.
  • Requests use your own token. Nothing is proxied through a third party.
  • The cover is downloaded by your server only when you pick a game and save it, then stored on your instance. Your browser never loads images from BoardGameGeek.
  • Fetched data stays on your instance for personal use, and guest links expose only the games you explicitly allow.

Data and images belong to BoardGameGeek and its contributors. Powered by BoardGameGeek.