Skip to content

Releases: huuhoa143/proxy-farm

v0.2.0

Choose a tag to compare

@huuhoa143 huuhoa143 released this 09 Oct 14:12

Proxy Farm desktop release v0.2.0

Changes since v0.1.1

  • chore: bump version to 0.2.0
  • Merge pull request #12: changelog: cut 0.2.0
  • changelog: cut 0.2.0
  • Merge pull request #5: Windows support + provider verification (HMA & ZoogVPN live, cross-machine audited)
  • fix(hma-windows): locale-proof task start, throttle refresh, read the task's result
  • Merge remote-tracking branch 'origin/main' into feat/windows-support
  • Merge pull request #11: Landing page for proxyfarm.lingoreup.com
  • chore(site): serve proxyfarm.lingoreup.com
  • docs(site): refresh PR screenshots
  • fix(site): frame each step on the panel it names
  • fix(site): provider-coloured cable band on every switchboard port
  • docs(site): review screenshots for the PR
  • docs: DESIGN.md for the landing page's visual system
  • Export: start a saved CSV with a UTF-8 BOM; path-neutral export test
  • Merge remote-tracking branch 'origin/main' into feat/windows-support
  • feat(site): ship the demo video with vi/en captions
  • fix(site): apply finish review and Lighthouse findings
  • Merge pull request #10: Port filters, Check all and file export
  • docs(site): dev, build, deploy and go-live steps
  • feat(site): SEO assets: OG cards, favicons, robots, headers
  • feat(site): bilingual landing page with switchboard hero
  • build(site): scaffold the Astro static site and Workers assets config
  • docs: product record and direction brief for the landing page
  • Keep every platform's update feed in one release, and record the Windows update test
  • fix(main-screen): Copy all waits for the export, Check all re-reads each port at its turn
  • Address the PR #5 review comments and the merged providers' Windows notes
  • fix(main-screen): keep checks across tab switches, check in screen order, no wrap in export
  • fix(i18n): spell xóa with the accent on the o, like khóa
  • docs: filters, Check all and file export
  • feat(main-screen): filter bar, Check all and a richer Export
  • feat(renderer): port filter, check bookkeeping and a cancellable queue
  • feat(export): CSV format, port status buckets and save-to-file IPC
  • Merge origin/main into feat/windows-support
  • Merge pull request #9: ExpressVPN provider
  • fix(file): read mssfix and fragment as OpenVPN 2.6 does
  • fix(file): guess an ExpressVPN download's country from its catalog
  • Document the ExpressVPN provider, credential guides and client-cert .ovpn import
  • test(exit-ip): an exit both geo services refuse still reports its IP
  • Add an ExpressVPN card and step-by-step credential guides
  • Allow the provider account pages the credential guides open
  • Register an ExpressVPN provider
  • feat(file): ask for the username and password an .ovpn signs in with
  • feat(file): import .ovpn profiles that use a client certificate
  • Merge pull request #8: NordVPN provider
  • fix(accounts): re-adding a key repairs its legacy-labelled account instead of adding a twin
  • test: tolerate the pool's background write when cleaning up
  • Document NordVPN exit sessions, virtual locations and geolocation
  • Model how each provider's exit IP relates to its server
  • Tag exits with the location's country, not the IP database's
  • Use Vietnamese names for cities that have one
  • Point the port-limit tooltip at the Providers screen
  • Spell "khóa" one way throughout the Vietnamese UI
  • Label key accounts by their public key, not the private one
  • Drop an engine's pid from the registry when it exits
  • Document the NordVPN provider and its live evidence
  • Add a NordVPN card to onboarding
  • Register a NordVPN (NordLynx) provider
  • Add NordVPN server list and access-token exchange
  • Fix the PR #5 review findings in HMA support and host-VPN detection
  • docs: record the ZoogVPN and Surfshark live results on Windows
  • Accept any local drive in the task's self-removal guard
  • Address lower-severity review notes
  • Harden HMA support against a standard user influencing the SYSTEM task
  • docs: Windows support, HMA support on Windows and the spike results
  • Double typographic quotes in PowerShell string literals
  • Make the Windows release script run and smoke-test the build
  • Run the packaged-app e2e suite on Windows and fix its drift
  • Quit a running instance with Proxy Farm --quit
  • Support HMA on Windows
  • Detect another VPN on Windows
  • Run the engine tests on Windows
  • Build the app on Windows from a fresh clone

Bundles sing-box sing-box-1.14.2 (SagerNet/sing-box, GPLv3). Its
complete corresponding source is attached to this release as required by
GPLv3 §6: sing-box-1.14.2-src.tar.gz.

Proxy Farm 0.1.1

Choose a tag to compare

@huuhoa143 huuhoa143 released this 08 Oct 23:22

ZoogVPN fixes found by a live end-to-end check of 0.1.0, verified on the real service before release.

Download

Mac File
Apple Silicon (M1 and later) ProxyFarm-darwin-arm64-0.1.1.dmg
Intel ProxyFarm-darwin-x64-0.1.1.dmg

macOS 12 or later; signed and notarized by Apple. Installed 0.1.0 apps update themselves (Settings → About & help).

Changed

  • ZoogVPN: a refused sign-in is now told apart from a server outside your plan by a
    live check on a ZoogVPN free server, instead of being guessed from how many servers
    refused it (0.1.0 could tell a new account on a restrictive plan that its password was
    wrong). "Check" makes one short test connection before the account is saved: a wrong
    email or password is rejected with that message, and if no free server answers the
    account is added as unverified. A port refused by a server checks the login the same
    way (at most once per 10 minutes per account) and then either moves on as a plan
    refusal or stops with "wrong email or password". A location where every server
    refuses a working login says so: "Your ZoogVPN plan doesn't include this location".
  • The location picker marks a location whose every server refused every account of its
    provider as "Not in your plan", with the reason as a tooltip and its quantity stepper
    disabled; its "+ Add port" says the same. The Change IP menu tags free-tier servers.
  • A location that covers a whole country (most ZoogVPN locations) is named after the
    country in the UI language: "Đức", not "Germany" or "Germany Đức", in the picker, the
    group header, the port labels and the Change IP menu heading.
  • With no free server left, the Change IP menu no longer promises to try "another city
    in the same country" when the provider has no other location there (ZoogVPN Japan);
    it says the port keeps its server.

Fixed

  • Two engines starting at the same moment (a sign-in check while ports start, or
    several ports at once) could be given the same control port, or the same proxy port,
    and the second sing-box then exited at once on its bind. Ports picked by a start in
    progress now count as taken for every other start, and a start on a port another
    engine is starting on fails as "port in use" before anything is spawned. Two sign-in
    checks running at once no longer pick the same local port either.
  • The Change IP menu could list a server as free and untried when it was only another
    hostname of a machine that had already refused the account (fr4 next to a refused
    de7), because that hostname had not been looked up yet. Opening the menu now looks
    up the location's hostnames first (in parallel, each once, for at most 2 s), so such a
    server shows as refused or taken before you pick it. Picking it never cost a
    connection attempt; it only looked available until then.
  • The location picker showed a location that had just turned out not to be in the plan
    as "No free server" until the app was restarted: it re-read the locations only when a
    port changed servers. The app now tells the window whenever a server is marked
    refused, dead or working, and the picker and the group headers update within a
    moment. A location group outside the plan now says "Not in your plan" in its header
    instead of a free-server count.
  • A Change IP to a server outside the plan left the port failed on that server ("not in
    your plan, not retrying") and gave up the server it had been working on, although
    other servers of the location were free. The refused server is still remembered, but
    the port now goes back to the server it was on before, or, if that one is no longer
    usable, to the next free usable server of the location. The row says which server
    refused and where the port went, and keeps saying it until the next Change IP on it. It fails for good only when no usable server is
    left. Any other refusal of a port that was online follows the same rule, during a
    Change IP too, and a login that a server accepted moments ago is no longer re-checked
    with an extra connection.
  • A port that failed for good (sign-in rejected, location not in the plan, WireGuard key
    not answered) kept starting a new engine about every 41 s against a server that had
    just refused it, while the row said it would not retry. Such a port now stops its
    engine and stays failed until you start it, change its IP or enter new credentials;
    app start, wake from sleep, auto-rotate and the webhook leave it alone.
  • The retry back-off restarted at 30 s on every attempt instead of growing to 30 min.
  • Server marks (refused, dead, last OK) now belong to the machine, keyed by its resolved
    IP, so they apply to every hostname that points at it: after de7.webunlim.com refused
    an account, fr4.webunlim.com (the same server) is skipped without another handshake.
    Marks saved by 0.1.0 under hostnames move onto the IP the first time each host
    resolves, and the hostname-to-IP map is saved with them.

Bundles sing-box 1.14.2 (SagerNet/sing-box, GPL-3.0-or-later) as a separate executable; its complete corresponding source is attached as sing-box-1.14.2-src.tar.gz. See THIRD_PARTY_NOTICES.md.

Proxy Farm 0.1.0

Choose a tag to compare

@huuhoa143 huuhoa143 released this 08 Oct 16:54
79dfb35

First release of the Proxy Farm desktop app for macOS: turn your own VPN subscription into local SOCKS5/HTTP proxy ports, each pinned to one server with a fixed exit IP. No Docker, no admin rights.

Download

Mac File
Apple Silicon (M1 and later) ProxyFarm-darwin-arm64-0.1.0.dmg
Intel ProxyFarm-darwin-x64-0.1.0.dmg

Requires macOS 12 or later. Both builds are signed and notarized by Apple. Windows builds will follow in a later release.

It replaces the Docker edition (v1, archived at the
v1-docker tag) and does not import v1 data.

Added

  • Desktop app for macOS 12+ (Apple silicon and Intel), built with Electron. The
    Windows x64 build is code-complete but not released yet. No Docker, VM, Python,
    admin rights or terminal needed.
  • One unmodified sing-box 1.14.2 process per proxy port, in userspace mode (no TUN, no
    driver, no routing changes). Configs are passed on stdin and never written to disk.
    Each port's only route out is its tunnel; DNS goes over DoH through the tunnel.
  • Providers: HMA (OpenVPN with the device credentials of the locally installed HMA app;
    macOS only for now), ZoogVPN (OpenVPN, email and password), Surfshark (WireGuard
    private key) and imported OpenVPN .ovpn / WireGuard .conf files.
  • Server pools: each location is a pool of servers and each port pins one server, so
    every port has its own fixed exit IP and a location can hold several ports.
  • Change IP moves a port to another free server of its location (or, if none is
    left, a location in the same country, with a note on the row) and confirms the exit IP
    changed. A server can be picked by hand from the Change IP menu. Auto-rotate every N
    minutes.
  • Per-server failover with sticky IPs: a dropped port retries its own server; it moves
    only when the server refuses the account (remembered 7 days) or fails a fresh
    reconnect (remembered 2 hours). Drops shared by several ports of a provider are treated
    as an outage, not as dead servers.
  • Surfshark server pools discovered in the app by sampling cluster DNS (system resolver
    and dns.google), refreshed at most every 12 hours.
  • Health checks through each tunnel, exit-IP and country checks, back-off from 30 s to
    30 min, staggered starts.
  • Multiple accounts per provider, per-provider port limits, bulk actions, export in four
    formats, per-port test and speed test, per-port logs with secrets redacted.
  • Optional rotate webhook (off by default) with a Bearer key and Host allowlist.
  • Proxies listen on 127.0.0.1; LAN sharing (0.0.0.0) requires a proxy username and
    password.
  • Secrets encrypted with Electron safeStorage (macOS Keychain, Windows DPAPI).
  • Tray icon, launch at login, keep-awake while ports are on, stop on sleep and restart on
    wake, single instance.
  • In-app updates from GitHub Releases (electron-updater), with automatic checks that can
    be turned off.
  • English and Vietnamese UI, light and dark theme.
  • Project documentation: English and Vietnamese README, privacy policy, security and
    support policies, contributing guide, code of conduct, third-party notices.

Removed

  • Docker, the web UI on port 8090, the CLI and IKEv2 support. They remain available on
    the v1-docker tag.

Before you use it

Use your own VPN account on your own machine and follow your provider's terms. Providers may suspend accounts that share connections or reconnect aggressively. See DISCLAIMER.md and PRIVACY.md. Questions go to Discussions; bugs to Issues.


Bundles sing-box 1.14.2 (SagerNet/sing-box, GPL-3.0-or-later) as a separate executable. Its complete corresponding source is attached to this release as sing-box-1.14.2-src.tar.gz. See THIRD_PARTY_NOTICES.md.