Skip to content

Proposal: Desktop DoH client (Windows + Linux) #578

@Pouria03

Description

@Pouria03

Desktop DoH Client (Windows/Linux) — Proposal

Purpose
Build a cross-platform desktop app that acts as a local DNS-to-DoH proxy, replicating Intra’s Android functionality with a minimal GUI for Windows and Linux.

link to forked repository --> https://github.com/Pouria03/Intra


Design Notes

  • Language & Core: Python3 or Go
  • DNS Parsing
  • GUI
  • Service Modes:
    • Dev mode: bind to port 5353 (non-privileged).
    • Production: bind to port 53 (Windows service / setcap on Linux).
  • Core Requirements:
    • Support UDP & TCP DNS.
    • DNS caching with TTL (LRU strategy).
    • Retries, timeouts, error handling.
  • Packaging:
    • Windows: PyInstaller → NSIS installer (+ code signing if possible).
    • Linux: PyInstaller → AppImage / .deb package.
  • System Integration:
    • Windows: PowerShell to set DNS to 127.0.0.1.
    • Linux: NetworkManager / systemd-resolved configuration.
  • CLI & Config:
    • Headless/daemon mode.
    • Config file for resolver list and settings.
    • Logging with levels (info/debug/warn).
  • Security & Privacy:
    • No telemetry by default.
    • privacy.md: resolver choices and logging policy.
    • SECURITY.md: vulnerability reporting guidelines.
  • Testing & CI:
    • Unit tests with mock DoH server.
    • Integration tests for end-to-end resolution.
    • GitHub Actions: Windows + Linux matrix.
  • Fallback Plan:
    • Option to call upstream Go DoH proxy as subprocess for performance.
  • Licensing:
    • Apache-2.0 for all new files, matching upstream repo.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions