Skip to main content

Connect local applications to a shared Traefik development proxy

Project description

Local Development Proxy

A single, persistent Traefik reverse proxy for independent Docker Compose development projects. Applications opt into a shared network while keeping their own lifecycle.

This is local-development infrastructure, not a production proxy configuration.

Quick start

You need Docker Engine or Docker Desktop, Docker Compose 5.x, uv, and loopback port 80 available. Start the proxy without cloning this repository:

uvx local-dev-proxy

Open http://traefik.localhost for the dashboard. The command creates or reconciles the proxy and waits for it to become healthy. To stop and remove it later, run:

uvx local-dev-proxy down

uvx local-dev-proxy uses the current published CLI release. To hold a specific reviewed version, use uvx local-dev-proxy@1.0.0 instead.

Connect an application

Compose uses the checkout directory as the project name. If that name is unique and contains only lowercase letters, digits, and hyphens, no configuration is needed.

Attach the service to the shared network and opt into Traefik:

services:
  web:
    networks:
      - default
      - local-dev-proxy
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=local-dev-proxy"
      - "traefik.http.routers.${COMPOSE_PROJECT_NAME}-web.rule=Host(`${COMPOSE_PROJECT_NAME}.localhost`)"
      - "traefik.http.services.${COMPOSE_PROJECT_NAME}-web.loadbalancer.server.port=8000"

networks:
  local-dev-proxy:
    external: true

The application must listen on 0.0.0.0:8000 inside its container. A checkout directory named my-project is available at http://my-project.localhost after docker compose up -d, without DNS or /etc/hosts changes.

See Integrating applications for the full contract, explicit service association, secondary services, multiple checkouts, and framework settings.

Or generate the Compose integration interactively with uvx local-dev-proxy generate; see Generating a local override.

Documentation

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

local_dev_proxy-1.0.0rc2.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

local_dev_proxy-1.0.0rc2-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file local_dev_proxy-1.0.0rc2.tar.gz.

File metadata

  • Download URL: local_dev_proxy-1.0.0rc2.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Manjaro Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for local_dev_proxy-1.0.0rc2.tar.gz
Algorithm Hash digest
SHA256 a99e4ca24d07f48e09a056b545d3e52c49b373c1e54f4fe94cfab8e1618e8b91
MD5 3386a251d84bb3b2846c3de2ae24f6fa
BLAKE2b-256 017afb1e9308364dc425efc797037ae48e5c49b247000ed9ab3ad9321ff5363f

See more details on using hashes here.

File details

Details for the file local_dev_proxy-1.0.0rc2-py3-none-any.whl.

File metadata

  • Download URL: local_dev_proxy-1.0.0rc2-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Manjaro Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for local_dev_proxy-1.0.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 2347c3a8eadbfa040ab5308b47eb355d67504d40babb294b71c2ee6148f10bbb
MD5 3bf9ad74fa7841078b7c7a502ee1fd7a
BLAKE2b-256 d38121752e716e5c4432f340a4eb22680abff7536e28ff6061af385dd202f87a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page