Skip to content

Releases: alysnnix/devproxy

v1.0.2

06 Apr 05:55
Immutable release. Only release title and notes can be modified.
v1.0.2
edd0838

Choose a tag to compare

devproxy v1.0.2

Fixed

  • Runtime directory auto-creation — daemon now creates /run/devproxy/ on startup if it doesn't exist, fixing socket creation failure after WSL2 reboot

Full Changelog: v1.0.1...v1.0.2

v1.0.1

06 Apr 05:36
Immutable release. Only release title and notes can be modified.
v1.0.1
b573f13

Choose a tag to compare

devproxy v1.0.1

New

  • Redesigned CLI output — tree view grouped by project with ANSI colors, green status indicator per service, header with version/project/service count
  • --verbose flag for devproxy status — shows Windows IP column
  • Improved devproxy doctor — colored checkmarks instead of [OK]/[FAIL]
  • Better empty state — helpful message when no projects are running
  • Version injected at build time via ldflags

Docs

  • Added CONTRIBUTING.md
  • Added issue templates (bug report, feature request)
  • Added pull request template
  • Updated ASCII logo in README

Full Changelog: v1.0.0...v1.0.1

v1.0.0

06 Apr 05:22
Immutable release. Only release title and notes can be modified.
v1.0.0
2e06db4

Choose a tag to compare

devproxy v1.0.0

Automatic Docker port conflict resolution via per-project loopback IPs.

What it does

Assigns a unique loopback IP to each Docker Compose project and forwards TCP traffic on standard ports. No changes to docker-compose files — just docker-compose up and connect:

acme.localhost:5432   → acme's PostgreSQL
acme.localhost:6379   → acme's Redis
widgets.localhost:5432 → widgets's PostgreSQL
widgets.localhost:8001 → widgets's API

Features

  • Docker Watcher — detects container start/stop events automatically via Docker socket, with reconnection and exponential backoff
  • Deterministic IP assignment — FNV-1a hash maps project names to stable loopback IPs (127.10.1.1127.254.254.1, ~62k slots) with collision resolution
  • Embedded DNS — resolves *.localhost on 127.0.53.53:53 via systemd-resolved delegation. TTL 0, no stale cache
  • TCP forwarding — pure Go forwarding with half-close support. Binds to project IPs only, never 0.0.0.0
  • NixOS moduleservices.devproxy.enable = true and done. Handles systemd, capabilities, DNS delegation, WSL2 quirks
  • Windows integration — PowerShell script generation for netsh portproxy + hosts file setup. Same hostnames work in DBeaver, browsers, etc.
  • CLIdaemon, status, down, cleanup, doctor, windows-setup, windows-cleanup

Security hardening

  • Sanitize project/service names in PowerShell script output to prevent injection
  • Add mutex to daemon maps to prevent concurrent write panic on SIGHUP
  • Restrict Unix socket permissions to 0660
  • Validate loopback IPs before netlink add/remove
  • Restrict collision file permissions to 0600
  • Replace broad pgrep with PID file for daemon management
  • Add 5s dial timeout to TCP forwarder
  • Validate Docker Compose labels against allowed charset

Install

NixOS:

inputs.devproxy.url = "github:alysnnix/devproxy";
imports = [ inputs.devproxy.nixosModules.default ];
services.devproxy.enable = true;

Script:

curl -fsSL https://raw.githubusercontent.com/alysnnix/devproxy/main/install.sh | sudo sh

Manual: download the binary from the assets below.

License

GNU GPL v3