dumbtv
dumbtv가 ADB로 Fire TV에서 광고·추적·업데이트 알림을 제거, 루트·앱 변경 없이, 무료 오픈소스
동의 전 트래커 작동, 무단 쿠키 설정, 개인 데이터가 광고 플랫폼으로 유출되는 증거를 스캔합니다
Scan any website and get evidence of trackers firing before consent, cookies dropped without permission, and personal data leaking to ad platforms.
보안TypeScript · CSSGitHub @ConsentinelHQ온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Consent and tag governance scanner. Two-pass (consent-off / consent-on) Playwright scan, signature-based tracker classification, evidence-backed findings.
apps/web - Next.js: marketing, free scanner, dashboard (Vercel)packages/queue - scan queue, enqueue API, and the SSRF guard. No browser dependency, so Vercel never bundles Chromium.apps/scanner - long-running worker: Playwright + BullMQ (container, never serverless). Entry: dist/main.js.packages/shared - Finding / ScanResult schema and pure helpers. The contract everything speaks.packages/db - Drizzle schema, migrations, and the repository layer (scans, findings, diffs)nvm use # Node 22
corepack enable # pnpm 9
pnpm install # also installs git hooks
cp .env.example .env
pnpm --filter @consentinel/scanner exec playwright install chromium
# Postgres (any local or Neon branch), then:
export DATABASE_URL=postgres://...
pnpm --filter @consentinel/db db:migrate
pnpm --filter @consentinel/db db:seed
pnpm typecheck && pnpm test && pnpm lint
Three processes: Postgres, Redis, and the worker, plus the web app.
pnpm --filter @consentinel/scanner dev # worker
pnpm --filter @consentinel/web dev # http://localhost:3000
Set ALLOW_PRIVATE_SCAN_TARGETS=true only if you are scanning a local fixture.
It disables the SSRF guard and must never be set in production.
# needs Redis and Postgres reachable per .env
pnpm --filter @consentinel/scanner dev # watch mode
pnpm --filter @consentinel/scanner scan <url> # one-off CLI, no queue
Callers never touch the queue directly - enqueueScan() is the single entry point,
so the SSRF check and the free-tier cache lookup cannot be skipped.
Schema lives in packages/db/src/schema.ts and is the source of truth. After changing it:
pnpm --filter @consentinel/db db:generate # writes a new migration
pnpm --filter @consentinel/db db:migrate # applies it
CI fails if schema.ts changed without a matching generated migration.
any without a comment saying why.feat:, fix:, chore:). Enforced on commit..env* (ignored) locally and the host secret store in prod. Never in code..github/workflows/ci.yml runs three jobs: check (web + shared), scanner (Playwright, cached Chromium, Docker build), audit.
Vercel deploys apps/web on merge to main via the GitHub integration. The scanner image is built in CI and deployed by the host on merge.