Files
dotfiles/python/ebook_search/docker
RichieandClaude Fable 5 5c73fc9e9b feat(ebook): install sqlalchemy[asyncio] in the ebook-search container
The async engine needs greenlet at runtime, which the asyncio extra
provides. Test-only deps (aiosqlite, pytest-asyncio) stay out of the
image.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 11:04:59 -04:00
..

Ebook Search Docker

Run the EPUB search app against the existing Postgres database on jeeves:

ebook-search-containers start --library-path /path/to/epubs --build

All ebook-search Docker files live in this directory:

  • Dockerfile
  • docker-compose.yml
  • containers.py
  • container.py

The app listens on http://localhost:8070.

Useful lifecycle commands:

ebook-search-containers build
ebook-search-containers start --library-path /path/to/epubs
ebook-search-containers logs
ebook-search-containers ps
ebook-search-containers stop

Direct compose usage from the repo root:

docker compose -f python/ebook_search/docker/docker-compose.yml ps

The compose service also loads the repo root .env into the container via env_file.

Mount your EPUB directory by setting EBOOK_LIBRARY_HOST_PATH in an env file or on the command line. The container sees it as /library, and EBOOK_SEARCH_LIBRARY_PATHS is set to /library inside the container.

Database connection settings are controlled by RICHIE_DB, RICHIE_HOST, RICHIE_PORT, RICHIE_USER, and RICHIE_PASSWORD. The default host is jeeves.

Startup runs the Richie Alembic migrations automatically after creating the main schema and vector extension.