# Profile: full (the "everything real" heavy profile — nightly/manual only) # # Test book: Moby-Dick (Herman Melville, public domain). # # What it exercises end to end, with NO mock bypasser: # 1. REAL Chrome internal bypasser: the AA mirror is the Cloudflare gate, which # passes search/detail through but challenges the *slow-download* page. So a # real DOWNLOAD forces the in-image headless Chrome (seleniumbase CDP) to solve # the JS challenge and harvest cf_clearance — the literal "spin a chrome # browser" path. Success = Moby-Dick lands in /books, which is only possible # if Chrome solved the gate. # 2. DoH enabled (USE_DOH) so the DNS-over-HTTPS code path runs at boot. # 3. REAL download client: a mock Prowlarr returns a webseed .torrent; a real # qBittorrent downloads the payload over HTTP from mock-aa and shelfmark # moves the completed file into /books. # # Heavy (Chrome + qBittorrent), so it is excluded from the PR matrix. COMPOSE_PROFILES=full # The CF gate is the only AA mirror: shelfmark refuses unconfigured hosts that # resolve to private addresses, and a second AA mirror would let the mirror selector # rewrite the gated link onto the ungated one. Search/detail and the final file pass # straight through; the slow-download page is challenged, so the internal Chrome # bypasser must solve it (search uses no bypasser, by design). SM_AA_URL=http://cf.mock.test SM_CF_GATED_PATHS=/slow_download/ SM_AA_FILE_BASE=http://cf.mock.test SM_USE_CF_BYPASS=true SM_USING_EXTERNAL_BYPASSER=false # DNS over HTTPS on. SM_USE_DOH=true # Prowlarr indexer + real qBittorrent client. SM_PROWLARR_ENABLED=true SM_PROWLARR_URL=http://mock-prowlarr SM_PROWLARR_API_KEY=e2e-test-key SM_PROWLARR_TORRENT_CLIENT=qbittorrent SM_QBITTORRENT_URL=http://qbittorrent:8080 SM_QBITTORRENT_USERNAME=admin SM_QBITTORRENT_PASSWORD=adminadmin SM_QBITTORRENT_CATEGORY=books # The real client download needs more headroom than a direct HTTP fetch. E2E_DOWNLOAD_TIMEOUT=300 E2E_PROFILE=full