99 Commits
Author SHA1 Message Date
jason5ng32 e461bc168b Improvements 2026-10-29 09:46:17 +08:00
jason5ng32 2d244a129d Improvements 2026-10-27 12:41:09 +08:00
Ayush-kukrety 61efe98d1d Docs: add Hindi README translation (#529) 2026-10-25 23:19:08 +08:00
Thanut Jongteerathanachote 4b8cceff4d Docs: add Thai README translation (#524) 2026-10-23 21:08:02 +08:00
ylfeid f9f24ca707 Docs(readme): add Albanian README translation (#511) 2026-10-22 11:08:41 +08:00
jason5ng32andClaude Fable 5.1 c350f0d2d9 Feat(ruletest): test twelve proxy rules, not eight
Four more ptest workers are live, so the Rule Test grid grows to
twelve cards and the README rule snippets cover them. The note above
the grid used to spell out the count in every locale; it now takes
the number from the card list, so the next change in count touches
one line. The CrossingTheWall rule keeps its eight-IP threshold.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-22 00:10:16 +08:00
jason5ng32andClaude Opus 5.5 1163ea4a13 Docs(readme): list the Ad & Tracker Blocking Test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 22:53:43 +08:00
jason5ng32andClaude Opus 5.5 547e9a1e84 Docs(sponsors): add Proxy-Seller and link sponsor names
Proxy-Seller joins the paid sponsors in all six READMEs and the footer
acknowledgement list. Each sponsor's bold name in the description line now
links to the same destination as its logo, so the copy is clickable too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:01:52 +08:00
jason5ng32andClaude Opus 5.5 068ea5a795 Docs(sponsors): separate supporters and stack their logos
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 10:40:29 +08:00
jason5ng32andClaude Opus 5.5 2961d9ba8d Docs(sponsors): add SwiftProxy and split paid sponsors from supporters
The README listed every sponsor as an equal-size logo at the bottom, with
the only ad copy hidden in a hover-only title attribute. Paid sponsors now
get their own group with a visible one-line description under each logo;
free-plan supporters share one row of smaller logos. V.PS links carry the
README's locale in utm_content.

SwiftProxy joins the paid group and the footer acknowledgement list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 10:24:19 +08:00
jason5ng32andClaude Opus 5.5 5c0891a323 Docs(readme): use DATASET_AUTO_UPDATE in the docker run example
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 02:35:23 +08:00
jason5ng32 076a9e36d8 Improvements 2026-10-03 22:42:22 +08:00
jason5ng32 3495204fc4 Improvements 2026-10-03 11:52:56 +08:00
jason5ng32 8ace7a2e30 Improvements 2026-09-29 15:38:54 +08:00
jason5ng32 681051b1bc Improvements 2026-09-29 15:31:25 +08:00
jason5ng32 b24874b69e Improvements 2026-09-29 15:27:43 +08:00
jason5ng32andClaude Fable 5.1 3b19e0253e Docs: describe the IP Calculator and drop changelog entry counts
READMEs and the AGENTS overview list the new tool; frontend/AGENTS.md
records the shareable `?q=` input pattern. TRANSLATING.md no longer quotes
the number of changelog entries, which went stale on every release.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 18:40:10 +08:00
s4ge 37b29c3975 Docs(readme): add CI workflow badge to all four READMEs 2026-08-28 11:34:52 -06:00
jason5ng32 6da1e69d4a Improvements 2026-08-26 09:55:03 +08:00
jason5ng32andClaude Fable 5 2ce2f3298e Docs(readme): restructure README and rebuild all translations
The feature list had fallen behind the product (v7.x additions missing,
stale copy) and 18 flat bullets scanned poorly. Regroup features into
five sections, adopt GFM alerts for the required configuration, collapse
the proxy rules into a details block, put Docker before Node, add the
missing License section, and fix long-standing typos. All five
translations are rebuilt from the new English text with tool names
aligned to each UI locale pack, plus a community-maintained disclaimer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-26 09:25:49 +08:00
Vitor Parras 7796304dcd Docs(readme): add Brazilian Portuguese README translation 2026-08-25 15:06:13 -03:00
jason5ng32 9b49bae493 Improvements 2026-08-25 09:46:47 +08:00
jason5ng32andClaude Fable 5 7b3594efee docs: add the Traditional Chinese README
Translate README_ZH into Taiwan-terminology Traditional Chinese, link it
from every README's language switcher next to Simplified Chinese, extend
the language-support line in all five, and count it among the maintained
READMEs in CONTRIBUTING.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 00:15:22 +08:00
jason5ng32 b6cf3132fc Improvements 2026-08-22 21:42:28 +08:00
jason5ng32andClaude Fable 5 8b2e49b57e Docs(readme): add a Contributing section and open the door to README translations
The READMEs — the project's highest-traffic pages — carried no
contribution invitation. All four gain a short Contributing section
pointing at the good-first-issue label and CONTRIBUTING.md, which now
also documents community-maintained README translations (English stays
canonical) as a starter area distinct from UI translations.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-22 18:19:38 +08:00
jason5ng32 33637f53de Improvements 2026-08-16 23:19:38 +08:00
jason5ng32 228d457a32 Improvements 2026-08-16 23:15:16 +08:00
jason5ng32 d7c8f7533b Improvements 2026-07-30 10:52:27 +08:00
jason5ng32andClaude Fable 5 ac3dc20d31 Docs(readme): slim deployment sections, point to docs.ipcheck.ing
The docs center now carries the full env-var reference and deployment
guides, so the READMEs keep only the two settings a first deploy must
get right (MaxMind, ALLOWED_DOMAINS) and link out for the rest.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 19:47:36 +08:00
jason5ng32 2b20d9d41e Improvements 2026-07-17 14:51:32 +08:00
jason5ng32andClaude Fable 5 55286689af Replace the Turkish locale with Russian
GA shows <10 daily Turkish-language visitors after years of a native
UI, while ~100 Russian-language visitors show the longest engagement
on the site despite seeing English. Swap keeps the maintenance surface
at four locales. Stored lang=tr preferences fall back gracefully, and
MaxMind natively carries ru geo names (it never had tr ones).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 02:10:31 +08:00
jason5ng32andClaude Fable 5 41b31dd960 Feat(api): store shareable diagnostic reports in Cloudflare KV
POST /api/report validates an untrusted report against the shared schema
whitelist (free text cannot enter storage), caps it at 32KB and writes it
to Workers KV under a 128-bit unguessable id with a user-chosen TTL
(1/7/30 days); GET /api/report/:id serves the read-only report page and
AI agents, behind a short edge cache since reports are immutable. The
whole feature is env-gated on the three CLOUDFLARE_* variables and
surfaced to the frontend as configs.reportSharing. Rate limiting is
deliberately left to the deployment layer (edge rules / the env-gated
global /api limiter), not the handler.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 13:35:49 +08:00
jason5ng32 39c051c704 Improvements 2026-07-14 01:07:14 +08:00
jason5ng32 64d75d7522 Improvements 2026-07-13 23:56:51 +08:00
jason5ng32 8d7478d89c Update Readme 2026-07-13 23:41:28 +08:00
jason5ng32 b542a4cc2e Update Readmes 2026-07-13 21:21:39 +08:00
jason5ng32 d26ae95761 Improvements 2026-07-13 21:06:48 +08:00
jason5ng32 f2ff0c1326 Improvements 2026-07-13 20:46:48 +08:00
jason5ng32 0c99bf7c5c Improvements 2026-06-06 14:43:52 +08:00
jason5ng32 be1b9ef116 Update Readme 2026-05-31 10:40:27 +08:00
jason5ng32 1d09e2b60f Improvements 2026-05-31 10:34:01 +08:00
jason5ng32 b596f73ca8 Improvements 2026-05-15 14:24:57 +08:00
jason5ng32andClaude Opus 4.7 aed481cf56 Docs(readme): add ASN history & upstream topology feature entry
Document the new ASN-related capability in all four locales (en/zh/fr/tr).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 18:08:48 +08:00
jason5ng32andClaude Opus 4.7 d4da045c1f Docs(asn): document CAIDA_AUTO_UPDATE; credit RIPE NCC + CAIDA
- Add CAIDA_AUTO_UPDATE row to env tables in all four README locales
  and to .env.example.
- Add RIPE NCC + CAIDA to Footer thanks list.
- Small locale + ASN Connectivity touch-ups.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 16:26:03 +08:00
jason5ng32andClaude Opus 4.7 4b8b16d212 Feat(ip-infos): add ASN routing history per IP card
New /api/asn-history handler queries RIPEstat routing-history for an IP
and enriches each historical ASN with its holder name via as-overview
(parallel, best-effort — org=null on timeout, ASN timeline still ships).
Filters out leak-grade prefixes (< /8 v4, < /19 v6) and low-visibility
announcements (< 30 full-feed peers) before fetching org names.

UI: ASN row in IpDetailPanel now has two view-toggles (Info / History)
sharing one Collapsible; at most one open at a time. Session-cached
per IP. Locale keys added in en/zh/fr/tr; bumps version to 6.2.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 21:07:28 +08:00
jason5ng32andClaude Opus 4.7 833f66cc42 Feat(backend): introduce pino logger + pino-http request logs
Replace all backend console.* with a shared pino singleton at
common/logger.js. Startup-style lines get emoji prefixes (🚀 listening,
📦 maxmind ready, 📥 downloading, 🗓️ schedule, ⚠️ warning, ❌ failure);
per-handler / per-request logs stay plain.

Three .env-driven knobs, all without NODE_ENV:
  - LOG_LEVEL (default info) — pino level filter
  - LOG_FORMAT (default pretty) — "json" for log shippers
  - LOG_HTTP (default off) — pino-http on /api/* gated behind this flag
    so pm2 logs don't bloat with 2xx/3xx request lines on every deploy;
    when enabled, 4xx log as warn and 5xx as error

logger.js calls dotenv.config({ quiet: true }) itself because ES module
imports are hoisted above backend-server.js's dotenv call — without that
LOG_LEVEL from .env was silently ignored.

Fixes in common/rdap.js:
  - err: res.status → status: res.status (pino's err serializer expects
    an Error object, not a number)
  - broken single-quoted template literal in "No RDAP endpoint" message
  - demote "No RDAP endpoint" and "Domain not found" from error to warn
    (they're expected outcomes for user input, not server failures)

README (en/zh/fr/tr) + .env.example + AGENTS.md (root and api/) all
updated to document the three new vars and the "no console.* in backend"
convention.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 01:29:52 +08:00
jason5ng32 38e8a5e6dd Update Readme 2026-04-19 16:11:29 +08:00
jason5ng32 5160f02bfa Update README_FR.md 2026-04-19 15:40:19 +08:00
jason5ng32andClaude Sonnet 4.5 dcec13cb57 Docs(readme): mark MaxMind vars as required, add setup guide
The GeoLite2 `.mmdb` files are no longer tracked in the repo (MaxMind's
EULA prohibits redistribution), so fresh deployments — especially via
Docker — start with an empty `common/maxmind-db/` directory and serve
503s from `/api/maxmind` until credentials are configured. The README
still labeled the MaxMind env vars as optional, which misled users.

Changes (applied to en / zh / fr / tr READMEs):
- `MAXMIND_ACCOUNT_ID`, `MAXMIND_LICENSE_KEY`, `MAXMIND_AUTO_UPDATE`
  flip to **Yes** in the Required column, with notes clarifying that
  `AUTO_UPDATE` can stay false only if `.mmdb` files were pre-seeded
  manually.
- Reordered the table so all required vars sit at the top.
- New "MaxMind Databases (Required)" subsection before the table,
  explaining why the vars matter, giving the exact signup + license-key
  steps, and including a prominent warning for Docker deployers that a
  missing setup silently breaks the MaxMind IP source and the WebRTC
  country badges.
- Updated the Node and Docker env-var examples to include the three
  MaxMind variables so copy/paste deployers end up with a working
  configuration by default.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-19 15:39:35 +08:00
jason5ng32andClaude Sonnet 4.5 6c228507c4 Docs(readme): add Turkish to the language-support bullet
The language switcher at the top of every README has listed Türkçe since
the tr locale was added, but the "also supports" bullet lower in the
page was never updated to match — all four READMEs still read "English,
Chinese, and French". Catches the four translations up.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-19 13:42:52 +08:00