dumbtv
dumbtv가 ADB로 Fire TV에서 광고·추적·업데이트 알림을 제거, 루트·앱 변경 없이, 무료 오픈소스
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Scrutinix is a FOSS multi-signal URL threat analyzer with streamed NDJSON results, batch scans, and client-side history.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Scrutinix is a FOSS multi-signal URL threat analyzer. Paste a suspicious link and get a streamed, evidence-first report that combines browser-protection lists, threat feeds, redirect tracing, DNS and TLS context, registration data, and ML scoring in one place.
https://www.scrutinix.nethttps://www.scrutinix.net/abouthttps://www.scrutinix.net/privacySPEC.mdCONTRIBUTING.mdSECURITY.mdvirusTotal: multi-engine URL reputation with analysis-freshness contextgoogleSafeBrowsing: browser-protection verdictsthreatFeeds: URLhaus, cached OpenPhish, ThreatFox, and Spamhaus DBL /
SURBL DNSBL coveragemlEnsemble: bundled local transformer classifier (quantized ONNX) plus
lexical scoringssl: certificate validity, trust, and certificate-age signalswhois: RDAP-backed registration and age contextdns: record-level infrastructure contextredirectChain: hop-by-hop redirect tracing with lightweight terminal-page
content analysisscan_started, signal_result, scan_complete, and
scan_error events./about and /privacy explain how verdicts are formed and what data stays in
the browser.Android (Chrome): open https://www.scrutinix.net, then use Chrome's menu
→ Install app (or Add to Home screen → Install). Scrutinix then
appears in the system share sheet: in a chat, email, or browser, Share →
Scrutinix opens the app with the first link in what you shared filled in
and taken apart; tap Analyze to check it. Desktop browsers can install it
too, but the share-sheet entry is an Android (and ChromeOS) feature; elsewhere
use the bookmarklet below.
iPhone and iPad (Shortcuts): iOS has no web share target, so a Shortcut you build once opens Scrutinix with the link filled in; tap Analyze to check it. These steps match iOS 26:
https://www.scrutinix.net/?url=, then tap URL Encoded
Text above the keyboard to insert it right after the =.To use it, share a link or a message from any app and choose Check with Scrutinix (in Safari: Share → View More). With nothing shared, run it from Shortcuts to check the link on your clipboard.
Bookmarklet (any desktop browser): save this as a bookmark's URL to open the page you're on in Scrutinix, ready to check:
javascript:location.href='https://www.scrutinix.net/?url='+encodeURIComponent(location.href)
Every way of sending a link (Share → Scrutinix, the Shortcut, the bookmarklet,
or any https://www.scrutinix.net/?url=<encoded link> link) fills it in and
waits for you to tap Analyze, so no other site or app can start a scan in
your browser.
24 LTS16195.94next-themesnpm install
cp .env.example .env.local
npm run dev
For browser automation and local audits, bind the host explicitly:
npm run dev -- --hostname 127.0.0.1 --port 3000
Core provider and deployment variables:
VIRUSTOTAL_API_KEY=
GOOGLE_SAFE_BROWSING_API_KEY=
URLHAUS_AUTH_KEY=
SPAMHAUS_DQS_KEY=
UPSTASH_REDIS_REST_URL=
UPSTASH_REDIS_REST_TOKEN=
KV_REST_API_URL=
KV_REST_API_TOKEN=
OPENPHISH_FEED_URL=https://openphish.com/feed.txt
NEXT_PUBLIC_APP_URL=https://www.scrutinix.net
SHARE_SIGNING_SECRET=
SHARE_SIGNING_SECRET_PREVIOUS=
SHARE_SIGNING_SECRET is the HMAC key that signs Share links, so a link is
shown as a Scrutinix result only when its signature verifies; unsigned,
tampered, and expired links (older than 72 hours) open a neutral "Check this
shared link yourself" view. It must be at least 32 characters (shorter values
are ignored with a warning). Generate one with openssl rand -base64 48, and
set it in the Vercel Production environment only, then redeploy: any
deployment holding the key can mint links production accepts as verified.
Leave it unset locally and in Preview; shared links then open neutral.
SHARE_SIGNING_SECRET_PREVIOUS verifies, but never signs, during key
rotation; keep the retired key there for at least 72 hours. See
.env.example for the annotated block.
The URLHAUS_AUTH_KEY also authenticates ThreatFox (both are abuse.ch
services). SPAMHAUS_DQS_KEY is a free Spamhaus Data Query Service key;
without it, Spamhaus DBL is reported unavailable on most cloud hosts, whose
resolvers the public mirror refuses. Empty values are treated as unset. The ML classifier is bundled
with the app and needs no key. Scrutinix still runs in a degraded mode without
third-party keys: local enrichment signals remain available, provider failures
are surfaced explicitly, and safe-result confidence is capped when primary
reputation coverage is missing.
Primary local checks:
npm run lint
npm run format:check
npm run typecheck
npm run test:unit -- --run
npm run test:integration -- --run
npm run test:dom -- --run
npm run test:e2e
npm run build
npm run lighthouse
Pull requests and pushes to main run the full CI chain, including fixture-backed
Playwright checks and Lighthouse with blocking Performance >= 0.90 and
Accessibility >= 0.95 thresholds. CI installs Chromium explicitly and shares
its executable path with both browser tools. npm run test:e2e runs the
Playwright suite in Chromium; npm run test:e2e:engines runs it in Chromium,
Firefox, and WebKit, and CI runs the Firefox and WebKit legs as their own jobs.
Additional repo maintenance checks:
npm audit
npm run lighthouse
app/api/analyze/route.ts: single-scan NDJSON endpointapp/api/analyze/batch/route.ts: batch NDJSON endpointproxy.ts: request gating and rate limiting for /api/analyzelib/server/: orchestration, provider adapters, caching, logging, and stream
helperscomponents/scrutinix/: the analyzer UI: verdict band, link anatomy, the
eight-cell signal strip, evidence rows, history, and client runtime islandsapp/og/result/: per-result share images for ?shared= linksapp/share/route.ts: the installed app's Web Share Target (POST /share)hooks/: NDJSON stream readers and IndexedDB-backed historytests/: unit, integration, accessibility, keyboard, and E2E smoke coverageSPEC.md: product and architecture source of truthPLAN.md: live execution plan and delivery statusCONTRIBUTING.md: local setup and contribution rulesSECURITY.md: private vulnerability reporting guidanceLICENSE: MITScrutinix is deployed on Vercel at https://www.scrutinix.net. Preview
deployments are protection-gated in this project; use vercel inspect when
anonymous preview requests return 401.