Spots

GitHub - charlesabarnes/gangway: Full-stack artifacts on your domain

gangway gives any containerized app a public HTTPS URL on your own domain.

Hosted platforms will put your app on a

Hosted platforms will put your app on a URL, but on their servers, for the frameworks they support, at their prices. I had a server with room to spare and kept needing a link for something: a visual review for a frontend pull request, a build for a client, a deck an agent had just made. gangway is the one place, on hardware you already own, that turns any of those into a URL in seconds. You get a URL in three ways, and all three produce the same kind of preview: A pull request opens or updates. The preview is linked from a sticky comment and torn down when the PR closes.

An agent calls the MCP deploy tool. It

An agent calls the MCP deploy tool. It works with Claude Code, Codex, Cursor, VS Code or any MCP client. The call blocks until the URL actually answers, then returns it. A person deploys from the web UI or the REST API: drop in files, paste a Compose stack, or point at a git ref. It runs as a single process on a plain Docker host, with no Kubernetes. You self-host it on your own domain.

A URL per preview under one wildcard certificate

A URL per preview under one wildcard certificate, such as shop-pr-142.preview.example.com. There is no per-preview certificate, so Let's Encrypt rate limits never bite.

Full Docker Compose stacks, not just single containers

Full Docker Compose stacks, not just single containers. Several services, healthchecks and seed hooks all work, and each exposed service gets its own hostname.

No Dockerfile needed. Static, Node, Bun, Deno, workerd

No Dockerfile needed. Static, Node, Bun, Deno, workerd, Python and PHP apps are detected from their files, and a gangway.yml can say more.

Throwaway databases. Postgres, MySQL or Redis run beside

Throwaway databases. Postgres, MySQL or Redis run beside the app, their URLs are handed to it as environment variables, and they are gone when the preview is. The preview page has a data browser. Previews expire and sleep. Each preview gets a time to live, idle ones go to sleep, and the first request wakes them.

Who can see a preview is up to

Who can see a preview is up to you. A preview can be public, unlisted (an unguessable hostname), password-protected, or visible only to people signed in to gangway.

Static sites and artifacts are served by gangway

Static sites and artifacts are served by gangway itself. They need no container and deploy in milliseconds. One artifact.md renders as a document, a slide deck, a dashboard or a prototype.

Accounts and permissions. Roles are made of per-feature

Accounts and permissions. Roles are made of per-feature permissions that you can remap. There are API tokens and OAuth for MCP clients, and an audit log.

News

GitHub - charlesabarnes/gangway: Full-stack artifacts on your domain

gangway gives any containerized app a public HTTPS URL on your own domain.

@spots #dev
Source: Show HN
See more like this