mrkeyoor.com_
Sat 17 Oct 13:32 UTC
Self-Hostedevaluationupdated 17 Oct 2026

edge-smart-doh review

Edge Smart DoH is a DNS-over-HTTPS service that can replace Cloudflare-hosted sites' addresses with preferred addresses and supply encrypted-handshake information to browsers. Its README and deployment guides are in Chinese, with no linked English edition. It targets connection and DNS-routing problems, while your computer still connects directly to the destination and exposes its IP address.

Verdict

Our Edge Smart DoH run passed all 196 tests in 5 seconds and reported 0 known npm vulnerabilities, making it a credible candidate for a targeted DNS experiment. Use it when preferred Cloudflare routes solve a problem you can verify from your own network. Skip it when you need IP anonymity, validating DNSSEC, or an English operations guide.

We ran it

Lab card: what happened when we ran edge-smart-dohScreenshot of edge-smart-doh (github.com/1molchuan/edge-smart-doh)
Install✓ · 11s105 packages · 299 MB
Build✓ · 4s
Tests✓ · 5s196 passed · 0 failed of 196 (vitest)
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo85 files~24,586 lines of source · 1.3 MB · 0 CI workflows · tests dir

Answers from our run

Does edge-smart-doh build from source?

Dependencies installed in 11 seconds (105 packages), and the build succeeded in 4 seconds. We cloned commit 50de12f into a clean Debian container with 3 CPUs and no project-specific setup.

Do edge-smart-doh's tests pass?

Yes. The project's own test command finished in 5 seconds and reported 196 passed, 0 failed (vitest).

Does edge-smart-doh have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use edge-smart-doh?

Anyone seeking a proxy or IP anonymity: the README says traffic still goes directly from the client to Cloudflare.

What are the alternatives to edge-smart-doh?

AdGuard Home, dnscrypt-proxy. Our Edge Smart DoH run passed all 196 tests in 5 seconds and reported 0 known npm vulnerabilities, making it a credible candidate for a targeted DNS experiment.

Setup3/511-second install; production needs DNS and HTTPS decisions
Docs4/5Detailed Chinese routing, privacy, and deployment explanations
Community2/5186 stars with October push and ongoing home-deployment requests
Maturity3/5196 passing tests; live routes and browser ECH remain unmeasured

Who it’s for

Network operators troubleshooting Cloudflare connectivity on particular Chinese ISP routes.
Self-hosters comfortable choosing trusted upstream resolvers and maintaining preferred address pools.
Browser users who understand HTTPS DNS records and want to investigate ECH behavior with the explain endpoint.

Who it’s NOT for

Anyone seeking a proxy or IP anonymity: the README says traffic still goes directly from the client to Cloudflare.
Systems that require their resolver to validate DNSSEC: this service does not validate it, and rewriting removes signatures and clears the authenticated-data flag.
Users configuring only router or system DNS for ECH: the README requires browser-level DoH queries for HTTPS records.
Networks whose proxy routing depends on seeing the real hostname: the README warns ECH can break those domain rules.
Operators requiring English deployment instructions: the supplied README and deployment guides are Chinese.

Setup reality

Our sandbox installed commit 50de12f in 11 seconds, adding 105 npm packages and using 299 MB. Build succeeded in 4 seconds. Vitest passed all 196 tests with 0 failures in 5 seconds. Npm audit reported 0 known vulnerabilities across all severities.

The Node route needs a host, HTTPS termination, trusted upstream resolvers, and preferred-pool configuration. Cloudflare Workers instead needs a Cloudflare account, deployment access, and domain configuration. ADMIN_TOKEN controls management endpoints; cfhub integration separately uses HUB_TOKEN and an ISP table.

Browser-level DoH setup is necessary for the documented ECH path. Preferred pools, ECH injection, and optional filtering need configuration rather than following automatically from installation. The Chinese guides cover Node/Caddy, Workers, and EdgeOne, each with different client-IP and caching concerns. Our run did not measure live DNS latency or browser handshakes.

Preferred DNS answers leave your traffic on a direct connection

Edge Smart DoH changes DNS answers so a browser can try preferred Cloudflare addresses and receive information for an encrypted handshake. Your browser still connects directly to the destination. The README explicitly says the service does not hide your IP address. That is the first distinction to understand before replacing a working resolver: the tool tackles address selection and handshake metadata, with no general promise of anonymity or faster access to every website.

Our checkout was 1.3 MB across 85 files. The project concentrates on a specific networking problem, with preferred pools selected for Chinese ISP routes and an explanation endpoint that shows how an answer was chosen. Its README and deployment guides are Chinese, without a linked English edition. An English-speaking operator can inspect the code and configuration names, but should allow time to understand the routing and privacy explanations before putting it in a shared network.

What happened when we ran it

Our run installed 105 npm packages in 11 seconds, built successfully in 4 seconds, and passed all 196 Vitest tests in 5 seconds at commit 50de12f. The run took place on October 16, 2026 in a fresh Debian container with 3 CPUs and 8 GB of RAM, using lab-node:22 without secrets or elevated privileges. Installed disk use was 299 MB. Nothing in those results indicates an install, build, or test failure.

Npm audit reported 0 known vulnerabilities, including 0 critical, high, moderate, or low findings. Our scan found a tests directory, 0 CI workflow files, and no Dockerfile. These are encouraging repository checks with a clear limit: neither the passing suite nor the audit establishes that a preferred IP is faster on your connection, that browser ECH succeeds, or that an operator's deployment preserves the intended privacy behavior.

Browser configuration determines whether ECH can help

The README says the browser must use this DoH service to request HTTPS DNS records for its ECH path. Configuring only a router or operating-system resolver does not satisfy that documented route. ECH encrypts the hostname within the TLS client greeting when the setup supports it. The address rewrite and the HTTPS record therefore need to agree, which is why the project also changes address hints and handles relevant CNAME chains.

The 196 passing tests provide useful local regression evidence, but we did not verify a browser handshake. The /explain endpoint is a practical next step because it reports returned records and whether the response can support Chromium's ECH behavior. It also shows the requesting IP. Keep that in mind before sharing diagnostic screenshots, and check the actual target site rather than assuming every successful DNS response means the handshake used ECH.

Upstream speed does not establish upstream trust

The resolver can ask another upstream when the first takes too long or fails, then use a valid response. The README warns that all upstreams in that race must be equally trusted: a faster polluted answer can win. That is a useful warning for anyone mixing resolvers reached through different network routes. Selecting more upstreams can change whose answer you accept, even if the interface makes the change look like a latency preference.

Our 4-second build tells us nothing about that trust decision. Preferred address pools introduce another configuration boundary. The related cfhub project supplies ISP-specific choices, while local probes and static or domain-derived pools provide other layers. The README says pools expire and fall back through those layers. You can run without cfhub, but then you need to understand which remaining source actually determines the addresses returned to your clients.

DNSSEC validation is outside the service's job

The README's cache section says this resolver does not validate DNSSEC. Rewritten answers lose their signatures and authenticated-data flag because the original signatures no longer match. That is an explicit reason to walk away if your network requires a validating resolver with intact signed answers. The ECH feature does not compensate for that different requirement.

The 299 MB installed environment also contains no evidence of a privacy audit by us. According to the README, ordinary queries are not logged by default, while debug and query-logging options change what gets recorded. Client subnet information can be sent upstream for selected routing decisions. Review those ECS settings and the upstream provider's role before describing the system as private simply because the browser-to-resolver connection uses HTTPS.

Node, Workers, and EdgeOne need different operating choices

The Node deployment uses Caddy for HTTPS and handling the client IP header. Cloudflare Workers needs account deployment access and suitable domain configuration. The Worker guide specifies Node 20 or newer for that deployment workflow. An edge deployment also has its own route from the client to the resolver, so hosting on Cloudflare cannot by itself solve poor access to Cloudflare's network.

The latest push was October 12, 2026. GitHub listed 186 stars and 2 open issues and PRs, with a home-deployment proposal updated October 17 and no latest published release. That shows recent work and discussion, rather than abandonment inferred from missing release tags. AGPL licensing also matters if you modify and serve the software. Start with one browser and a known troublesome site, then keep the resolver only if the connection outcome improves on the network where you actually use it.

Alternatives

ProjectWhat it isPick it when
AdGuard Home gh↗A self-hosted DNS service centered on network filtering and administration.pick this instead when household DNS management and blocking are the goal rather than preferred Cloudflare addresses.
dnscrypt-proxyA local DNS proxy for encrypted upstream resolver connections.pick this instead when choosing encrypted resolvers matters more than rewriting Cloudflare answers and injecting ECH configuration.

What people are saying

  1. [velocity-scout] 1molchuan/edge-smart-doh

Sources

  1. Chinese README, privacy, and DNSSEC limitations
  2. Cloudflare deployment guide
  3. EdgeOne deployment guide
  4. Repository metadata
  5. Recent issue and pull request activity
  6. Release history

More self-hosted reviews

playport · Comma · ProsperoEden · zulu · node_exporter · Arrmada · the whole board →