REGSTAR
← All projects
WDTT Gateway iconStable · v1.0.0

> windows / home network gateway

WDTT Windows Home Gateway

Turn a Windows 10/11 PC into a home qWDTT gateway with Docker Desktop, Direct routing, server-side DNS-over-HTTPS, and a separate Cloudflare WARP path.

The project packages a modified qWDTT-compatible server for a Windows home setup, generates Android connection profiles, prepares router forwarding data, and exposes one management entry point through service.cmd. Telegram Proxy is optional and isolated from the main gateway.

Windows 10/11Docker DesktopGoPowerShellqWDTTGPL-3.0
AndroidqWDTT profile
RouterUDP :56000
Windows 10/11Docker Desktop · service.cmd
Docker ComposeCore / CoreDns / Full
corewdtt-serverqWDTT · DTLS · WireGuard
dns profilewdtt-dnsDNS → DoH
warp profilewdtt-warp-gatewayCloudflare WARP
optionalwdtt-telegram-proxyFlowseal/tg-ws-proxy
DIRECT
home IP
DNS / DoH
resolver
WARP
fail-closed
PlatformWindows 10/11 x64
Releasev1.0.0
Published9 Aug 2026
RuntimeDocker Desktop
LicenseGPL-3.0-only

> context

A home gateway built around an existing Windows PC

WDTT is not a system VPN client for Windows. The Windows machine hosts the server-side path used by qWDTT on Android and exposes only the network entry points deliberately configured by the user.

01 / problem

Home routing usually spans several systems

A working remote qWDTT setup involves a Windows host, Docker, a reachable router port, Android profiles, DNS policy, optional alternate routing, diagnostics, backups, and secrets. Handling each layer manually is fragile.

02 / approach

One managed Windows package

The project keeps Docker Desktop as an explicit prerequisite and manages only WDTT-owned resources. service.cmd coordinates install, start/stop, Doctor, router data, profiles, resources, backup/update flows, optional Telegram Proxy, and experimental features.

> modes

Three supported gateway modes

Modes change which Docker services are active. Direct and WARP are separate routing policies, not automatic fallbacks.

CORE

Core

Main WDTT server only.

  • Home - Direct
  • Minimal container set
  • No server-side DoH/WARP
COREDNS

CoreDns

Main server plus server-side DNS-over-HTTPS.

  • Home - Direct
  • DNS UDP/TCP 53 interception inside tunnel
  • Custom DoH endpoint supported

$ traffic paths

Traffic paths stay explicit

The design deliberately keeps routing choices observable. DNS can change resolution without changing public IP; WARP changes the route only for clients assigned to the WARP policy.

Direct
qWDTTwdtt-serverWireGuard wdtt0home uplink

Uses the home public IP. This is the normal route for Home - Direct.

DNS / DoH
client DNStunnelwdtt-dnsHTTPS resolver

Available in CoreDns and Full. Android Private DNS or application-level DoH can bypass this server-side DNS path.

WARP
qWDTTwdtt0policy routingwdtt-warp-gateway

Available in Full. If the WARP gateway fails, the WARP profile must fail instead of silently returning to Direct.

Telegram Proxy
TelegramWDTT private addresswdtt-telegram-proxy

Optional Flowseal/tg-ws-proxy service inside the WDTT network namespace. A proxy failure must not break the main WDTT server.

> service.cmd

service.cmd is the control surface

The Windows package intentionally uses a text-based management panel instead of hiding Docker and network state behind a separate GUI.

C:\WDTT\service.cmd
Passwords and ready-to-import qwdtt:// links are hidden until the user explicitly requests them.

> setup

From ZIP to a working phone profile

The normal path keeps Windows prerequisites, router configuration, and external reachability checks separate.

01

Prepare Windows

Install and start Docker Desktop manually. If Docker uses WSL 2, prepare WSL outside WDTT.

02

Run service.cmd

Choose install/check settings and select Core, CoreDns, or Full plus port, DNS, resources, and adapter.

03

Configure router

Use ROUTER-SETUP.txt to reserve the PC LAN address and forward the selected UDP port.

04

Import Android profile

Reveal the Direct/WARP credentials only when needed and import the generated qwdtt:// data.

05

Verify externally

Run Status/Doctor locally, then test from a phone over mobile data; local checks cannot prove inbound ISP/router reachability.

$ architecture

Docker and routing architecture

Each optional capability is a separate Compose service/profile where practical, which limits blast radius and keeps the main server path understandable.

Windows host

Windows 10/11 x64, Docker Desktop, Windows PowerShell 5.1, service.cmd and management scripts.

wdtt-server

Privileged qWDTT-compatible Go server, TUN access, WireGuard wdtt0, Direct policy and published WDTT port.

wdtt-dns

Optional dnsproxy service sharing wdtt-server network namespace; ordinary DNS is redirected to a configured DoH upstream.

wdtt-warp-gateway

Optional Cloudflare WARP Linux client in its own Docker network; policy routing sends only WARP-assigned WDTT client IPs through it.

wdtt-telegram-proxy

Optional Flowseal/tg-ws-proxy image sharing the WDTT namespace; no extra Docker port publication by default.

State & tooling

Local .env/data, generated setup-output, backup/restore, resource profiles, Status/Doctor, update and uninstall scripts.

> engineering

Engineering decisions

The project avoids several tempting shortcuts because they would make a home gateway harder to reason about or less safe.

Prerequisites

Do not bootstrap Windows automatically

WDTT does not install Docker Desktop, WSL, winget, Virtual Machine Platform, or change BIOS/UEFI. Missing prerequisites fail with targeted diagnostics.

Routing

WARP is fail-closed

A WARP profile must never silently reveal the home Direct IP if Cloudflare WARP is unavailable.

Secrets

Do not persist profile passwords in setup memos

ANDROID-PROFILES.txt is redacted; real passwords and qwdtt:// links appear only after explicit disclosure.

Network exposure

Publish only what is required

Normal setup needs the selected WDTT UDP endpoint. DNS ports, internal WireGuard ports, Docker API, and admin surfaces are not intended for internet exposure.

Optional proxy

Telegram Proxy has its own lifecycle

Enable/update/rollback/health operations are isolated so proxy failure does not take down the main WDTT stack.

Experimental transport

No-DTLS is opt-in

The separate no-DTLS listener is disabled by default and is not part of Core/CoreDns/Full normal operation.

> technology

Technology stack

GoqWDTT-compatible server
PowerShell 5.1Windows management
Docker Composeservice orchestration
Docker DesktopWindows runtime
WireGuardinternal tunnel
dnsproxyserver-side DoH
Cloudflare WARPoptional route
Flowseal/tg-ws-proxyoptional Telegram proxy
Pester + Go testsvalidation

> security

LOCAL SECRETS

Treat gateway state as sensitive configuration.

Backups, .env, private keys, WARP state, Telegram secrets, profile passwords and import links can expose access to the gateway. The project documents explicit boundaries for logs, generated files and published ports.

  • ANDROID-PROFILES.txt is saved without real passwords
  • Router memo contains network data but not profile passwords
  • Backups are secrets
  • Do not publish docker compose config after variable expansion
  • Review logs before sharing
  • Do not expose DNS, Docker API or internal admin ports

> origin

Project origin

The gateway contains a modified qWDTT server component derived from SpaceNeuroX/proxy-turn-vk-android. It is not an official qWDTT/SpaceNeuroX release. Telegram Proxy integration separately uses Flowseal/tg-ws-proxy as an optional component.

> limitations

EXPLICIT PREREQUISITES

Home networking still has external constraints.

Normal external use needs a reachable UDP endpoint. CGNAT or double NAT may require provider changes or another network design. WARP depends on Cloudflare, and local Doctor checks cannot prove that inbound UDP is actually reachable from the internet.

$ stable_release

WDTT Windows Home Gateway v1.0.0

v1.0.0 is the first stable public release. The Windows ZIP is built from an allowlist, PowerShell and shell files are validated, and the finished archive is extracted into a separate temporary directory and validated again.

Windows ZIP SHA-25654CDD3BAE5EC4369DEE442D31E832014821047FD21A3CD72E341F9C42B459516
Version1.0.0
PlatformWindows 10/11 x64
Package279,651 bytes
FormatWindows ZIP
Main UIservice.cmd
ChannelStable

> project links

Project resources

GitHub is the source of truth for releases, user guides, security notes, upstream compatibility, and issue tracking.