Releases: ianrumac/bridgeflare
Releases · ianrumac/bridgeflare
Release list
v0.1.0
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,waitandlogs -fagainst a unix socket (DOCKER_HOST). Each container
becomes a Worker + Durable Object running your image, built forlinux/amd64and pushed
on first use. - Published ports on
localhost. Every-pport is tunnelled as raw TCP over a
WebSocket, so HTTP,psqlandredis-cliall work. The Worker is guarded by a
per-container secret that only the local127.0.0.1proxy holds, so the public
workers.devroute 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>_AUTHand
BF_MESHare injected as well, for config-driven apps. - Stock
postgreson Cloudflare's rootless runtime. BridgeFlare generates an image that
drivesinitdb/postgresdirectly and honoursPOSTGRES_USER,POSTGRES_PASSWORDand
POSTGRES_DB.redisruns 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 buildwith the classic builder (DOCKER_BUILDKIT=0). Multi-stage works;
FROMlines are pinned tolinux/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 namedbf-…; teardown deletes exactly those, including pushed registry images.
bridgeflare gcreapsbf-orphans (dry-run by default) andbridgeflare reconcile
repairs local state against Cloudflare. - CLI:
login,serve,list [--json],restart-all,stop-all,gc,reconcile
andwelcome. Colour is used only where it carries meaning, and honours--no-color,
NO_COLOR,CLICOLORandCLICOLOR_FORCE. A first run is greeted with a walkthrough. - Browse containers by name on macOS.
sudo bridgeflare dns installmakes
http://<container>.bridgeresolve 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.socktakeover for tools that ignoreDOCKER_HOST
(bridgeflare socket take/release/status) — opt-in, root-gated, confirmed and
reversible.- Install onto your
PATHwithcargo 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
wranglerand Docker.bridgeflare servewarns about whichever
is missing and prints the fix for your OS. Withoutwranglerit 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 inCargo.tomlchanges.
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.