Skip to content

Releases: ianrumac/bridgeflare

Release list

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 16:42

The first release: a Docker API daemon that runs your containers on Cloudflare Containers
and tunnels them back to localhost. Experimental — read
Limitations before depending on it.

Added

  • The Docker CLI, pointed at Cloudflare. docker run, ps, inspect, stop, rm,
    stats, wait and logs -f against a unix socket (DOCKER_HOST). Each container
    becomes a Worker + Durable Object running your image, built for linux/amd64 and pushed
    on first use.
  • Published ports on localhost. Every -p port is tunnelled as raw TCP over a
    WebSocket, so HTTP, psql and redis-cli all work. The Worker is guarded by a
    per-container secret that only the local 127.0.0.1 proxy holds, so the public
    workers.dev route is unusable by anyone else.
  • docker compose up / down. Projects, networks and labels as compose expects them,
    with a full-project teardown that leaves nothing behind.
  • Service names between containers. Peers answer to their plain compose service name
    (postgres://db:5432), via a small static agent baked into each image that resolves
    names on loopback and tunnels to the peer's Worker. <PEER>_URL, <PEER>_AUTH and
    BF_MESH are injected as well, for config-driven apps.
  • Stock postgres on Cloudflare's rootless runtime. BridgeFlare generates an image that
    drives initdb/postgres directly and honours POSTGRES_USER, POSTGRES_PASSWORD and
    POSTGRES_DB. redis runs as-is.
  • Volumes. Named volumes, and bind mounts seeded into the image: the container gets a
    writable copy for its lifetime, and editing a seeded file rebuilds on the next run.
  • docker build with the classic builder (DOCKER_BUILDKIT=0). Multi-stage works;
    FROM lines are pinned to linux/amd64. BuildKit's bootstrap is refused with an error
    that says why, rather than half-deployed.
  • Restart-persistence. Running containers survive a daemon restart: proxies and secrets
    are persisted and rebuilt on startup.
  • An exact ledger of what was created. Every Cloudflare resource is recorded in SQLite
    and named bf-…; teardown deletes exactly those, including pushed registry images.
    bridgeflare gc reaps bf- orphans (dry-run by default) and bridgeflare reconcile
    repairs local state against Cloudflare.
  • CLI: login, serve, list [--json], restart-all, stop-all, gc, reconcile
    and welcome. Colour is used only where it carries meaning, and honours --no-color,
    NO_COLOR, CLICOLOR and CLICOLOR_FORCE. A first run is greeted with a walkthrough.
  • Browse containers by name on macOS. sudo bridgeflare dns install makes
    http://<container>.bridge resolve to a local responder.
  • A macOS menu bar app (bridgeflare-menubar): containers grouped by project, with
    Open, copy-link, Restart All and Kill All.
  • /var/run/docker.sock takeover for tools that ignore DOCKER_HOST
    (bridgeflare socket take / release / status) — opt-in, root-gated, confirmed and
    reversible.
  • Install onto your PATH with cargo install --path . --locked. The installed binary
    is self-contained: it carries the mesh agent's source, so it no longer needs the checkout
    it was built from.
  • A startup check for wrangler and Docker. bridgeflare serve warns about whichever
    is missing and prints the fix for your OS. Without wrangler it falls back to
    npx wrangler; with neither, a deploy fails with a message that names the fix instead of
    No such file or directory.
  • Release builds for macOS (Apple Silicon and Intel) and Linux x86_64, published
    automatically when the version in Cargo.toml changes.

Known limitations

docker exec and attached-mode docker run are not supported (they fail cleanly rather
than hang), nothing persists past a container's life, and only live docker logs -f is
available. The full list is in the README.