guise — auto-generate random per-service email aliases for docker-mailserver (web UI) #4703
Replies: 2 comments 3 replies
|
v0.3.0 — Bitwarden / SimpleLogin-compatible HTTP API Follow-up: guise v0.3.0 shipped a SimpleLogin-compatible endpoint ( In practice: from any Bitwarden client, generate a fresh per-service alias right from a signup form. When the request comes from an in-page or autofill context that knows the URL (browser extension on a signup page, vault entry generator with a URI attached), guise auto-labels the alias from the registered domain — e.g. generating on Bitwarden setup: point the SimpleLogin self-hosted server URL at your guise instance, API key = Full request/response spec, error codes, and the SimpleLogin subset implemented are in docs/api.md. v0.3.0 changelog entry. Image: |
Is there a benefit to that vs sub-addressing? I suppose the intent is for a disposable address unlike with sub-addressing that uses a common address with an identifier (which could be accepted regardless of value chosen by the sender), the hexadecimal component has that advantage at least :)
Just for clarity read-only on the socket file doesn't prevent write operations in the API, but that is what Regarding your README with Apache as an example, I'm not sure if that's really that great of a choice these days? Especially if you want to keep things nice and simple Caddy is pretty good for that responsibility with great defaults and simple config. guise.example.com {
reverse_proxy 127.0.0.1:9100
}That will give you a reverse proxy service that automates the provisioning of the LetsEncrypt certificate and renewals for If you're interested in a container for Caddy, there's their official one (with advice on volume mounts for persisting certs), and also Caddy Docker Proxy that can likewise use |
Uh oh!
There was an error while loading. Please reload this page.
Building on the conversation in #4177 about web UIs for alias management: I built guise, a small Flask sidecar that exposes the
setup alias add/del/listflow as a browser UI. Type a label like "netflix" and guise generates a random-prefix alias (g-<8hex>-netflix@example.com) routing to your mailbox — copy-button next to each, one-click delete. Per-user dashboard filtered by target.Addressing the docker.sock security concern raised in #4177: guise's default install includes a
docker-socket-proxysidecar (read-only socket mount, scoped toCONTAINERS+EXECendpoints only). guise itself never mounts the host socket. The Quickstart in the README is the proxy-fronted setup; bare-socket isn't offered as the default path.How it integrates with DMS:
docker exec mailserver setup alias …through the proxy. Configurable container name viaGUISE_MAILSERVER_CONTAINERenv var.ghcr.io/messelink/guise:latest. AGPL-3.0.Repo: https://github.com/messelink/guise
Built with Claude Code; design decisions were mine, Claude wrote the Python. Adversarial security audit was run on the codebase before tagging — 2 high, 4 medium, 6 low findings, all closed. Substantive code review welcome on GitHub — issues, PRs, security reports per SECURITY.md.
All reactions