dumbtv
dumbtv가 ADB로 Fire TV에서 광고·추적·업데이트 알림을 제거, 루트·앱 변경 없이, 무료 오픈소스
한 사람이 만든 무료 도구: PDF 수정·강력 비밀번호 생성·링크 확인·사진 텍스트 추출, 모두 기기에서 작동, 광고·추적·유료벽 없음
Free, honest tools made by one person: fix PDFs, make strong passwords, check suspicious links, read text from photos. Everything works on your device — no ads, no tracking, no paywall at the end.
보안HTML · JavaScriptGitHub @AbdulazizAlwabel온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Nicely Done — small, private security & developer tools that run entirely in your browser.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Small, private tools for security and everyday developer work. (Formerly PassForge.)
Every tool runs in the browser — nothing typed into them is sent anywhere:
| Security | Developer | Everyday |
|---|---|---|
| Password & passphrase generator | Base64 encode/decode (+ files) | Unit converter (10 categories) |
| Password strength checker | JSON formatter / validator | Hijri ⇄ Gregorian (Umm al-Qura) |
| Hash generator (MD5, SHA-1/256/384/512, files, verify) | Text case converter | |
| Username generator | IP & network + subnet calculator | |
| One-time secret links (E2E encrypted, self-destructing) |
Extras: a full Arabic version at /ar/ (right-to-left, Arabic typography, translated at build time from src/i18n/ar.json), ⌘K / Ctrl K command palette, light & dark themes, offline support (service worker / PWA),
SEO metadata, Open Graph image, sitemap, and an optional account system (sign up, email
verification, password reset, profile, admin console).
build.py static site generator (no dependencies, Python 3.8+)
src/assets/ site.css, site.js, words.js (EFF wordlist)
src/pages/ one file per page: @tool / @aside / @about / @script sections
src/static/ og.png, icons (regenerate from tools/*.html with headless Chromium)
dist/ build output — deploy this folder
server/ Node/Express account API + static host (MySQL/MariaDB, SMTP)
deploy/ Caddyfile + systemd unit
Pages are written in English; build.py renders each one again under /ar/ using src/i18n/ar.json
(page text, attributes and inline-script strings) and src/i18n/ar.runtime.json (shared scripts and API
messages). Every build writes i18n-missing.txt; keep it empty. Sentences with numbers use templates —
ND.f('Found in {count}', …) — and plurals use ND.pl / ND.count with Arabic plural forms.
python3 build.py # → dist/
python3 -m http.server -d dist 8000 # static preview (accounts hidden)
Static only (tools, about page): upload dist/ to any static host — GitHub Pages,
Cloudflare Pages, Netlify, Azure Static Web Apps or IIS (web.config included). The account UI
hides itself automatically when /api isn't available.
Full (tools + accounts): run the Node server, which serves dist/ and /api from one origin:
cd server
cp .env.example .env # fill in JWT_SECRET, DB_*, SMTP_*
mysql -u root -p < schema.sql
npm ci --omit=dev
node server.js # :3000 — put Caddy (deploy/Caddyfile) or IIS/nginx in front for HTTPS
The API is compatible with v1 (PassForge) and the existing users/tokens tables; v2 adds
rate limiting, hashed one-time tokens, username login, resend-verification, strict cookies,
security headers (CSP, HSTS) and a /api/health check.
nicelydone.qd.je is a DigitalPlat FreeDomain subdomain. Its nameservers are set in the
DigitalPlat dashboard; records then live at that DNS provider:
CNAME nicelydone.qd.je → <host> (e.g. abdulazizalwabel.github.io)A nicelydone.qd.je → <server IPv4> and CNAME www → nicelydone.qd.jedeploy/install-vm.sh also installs three systemd timers from deploy/ops/:
| Timer | What it does |
|---|---|
nicelydone-backup | 00:30 UTC nightly mysqldump → /var/backups/nicelydone, 14 days kept |
nicelydone-monitor | every 5 min: health check through HTTPS + daily certificate-expiry check; alerts on change |
nicelydone-autodeploy | every 5 min: if GitHub main moved, rebuild, install, health-check, notify |
Alerts go through Hermes to the target in /etc/nicelydone/ops.env (kept off the repo).
deploy/ops/nicelydone-backup-pull.* is a user-level timer template for pulling the backups to another machine.
Admins are set by numeric id: ADMIN_USER_IDS in server/.env.