adscrub (flan/adscrub) stays a separate, standalone product -- own repo, schema, CLI. hark adds it as a path dependency (editable, ../adscrub -- see pyproject.toml [tool.uv.sources]) and calls its functions directly rather than duplicating any code. hark's own episodes/shows/ad_segments schema was deliberately shaped to match adscrub's column-for-column, so adscrub's schema-coupled functions (pending_episodes, scan_episode, transcribe_episode, detect_pending, cut_pending, ...) work unchanged against hark's own conn. hark cli.py's chapters/transcribe/detect-ads/cut subcommands call straight into the adscrub package -- no hark-side chapters.py/transcribe.py/detect.py/cut.py exists. podcast_feed.py is hark's own file (schema-specific: show_id/feed_url naming plus token auth, none of which adscrub's own feed.py has), used by new token-gated /feed/<show_id>/<token> and /audio/<episode_id>/<token>.<ext> routes on hark web -- unauthenticated since a podcast app can't do the dashboard's cookie login, gated instead by a random per-show feed_token. 110 tests pass. Known gap, not solved: the path dependency doesn't resolve in the Docker build context yet (needs a real packaging decision -- git dependency+deploy key, vendored wheel, or a multi-repo build script) -- documented in the Dockerfile, README, and docs/PLAN.md rather than papered over.
20 lines
637 B
YAML
20 lines
637 B
YAML
# GPU override: requests the host's RTX 2070 SUPER via the nvidia Docker
|
|
# runtime (confirmed registered on `code` — see CLAUDE.md) and builds the
|
|
# image with the cuBLAS/cuDNN extra (passed through from adscrub[gpu], see
|
|
# pyproject.toml) so faster-whisper actually uses it.
|
|
#
|
|
# docker compose -f compose.yaml -f compose.gpu.yaml build
|
|
# docker compose -f compose.yaml -f compose.gpu.yaml run --rm hark transcribe
|
|
services:
|
|
hark:
|
|
build:
|
|
args:
|
|
GPU: "1"
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities: ["gpu"]
|