The Edge Stack
Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.
The edge stack is the shared foundation every project plugs into. It boots independently of
any project and runs as its own compose project named multi-docker-edge on the external
docker network of the same name. Every project container joins that network so a single
Traefik can route to all of them.
The four services
Section titled “The four services”| Service | Image | Host ports | Role |
|---|---|---|---|
traefik |
traefik:v3.5 |
127.0.0.1:80, 127.0.0.1:443 |
TLS-terminated reverse proxy. Discovers containers via the docker provider (through docker-proxy). Dashboard at https://traefik.<base-domain>. |
mailcatcher |
dockage/mailcatcher:0.9.0 |
none | SMTP catch-all at mailcatcher:1025. Web UI at https://mail.<base-domain>. |
dns |
4km3/dnsmasq:2.90-r3 |
127.0.0.1:53/udp+tcp |
Answers *.<base-domain> with 127.0.0.1, paired with the macOS resolver. |
docker-proxy |
nginx:1.30-alpine |
none | Strips the /v1.24/ version prefix from Docker-API requests so Traefik 3 can talk to OrbStack. |
All four use restart: unless-stopped, and every host port binds to loopback only —
nothing on the edge stack is exposed to your LAN.
How a request flows
Section titled “How a request flows”- Your browser resolves
aurora.coding9.testto127.0.0.1(via dnsmasq + the macOS resolver). - It connects to Traefik on
127.0.0.1:443, which terminates TLS with the mkcert wildcard certificate. - Traefik matches the
Host(...)rule from the labels that the generated override attached to your container. - It forwards the request over the
multi-docker-edgenetwork to the container’s internal port.
Traefik discovery rules
Section titled “Traefik discovery rules”Traefik runs default-deny (exposedByDefault: false), so a container is only routed when
its override sets:
traefik.enable=true— opt-in per container.traefik.docker.network=multi-docker-edge— tells Traefik which network to use when a container is on several.- A router rule from the
{{hosts_rule}}substitution.
You never write these labels by hand — the profile render engine generates them.
Mail catching
Section titled “Mail catching”Projects should point their SMTP at mailcatcher:1025 (the container hostname on the edge
network). The shopware-dockware profile wires this automatically via MAILER_DSN and
friends; other stacks set it themselves. All captured mail shows up at
https://mail.<base-domain>. See Catching Outgoing Mail.
Multiple base domains
Section titled “Multiple base domains”engine/render-edge.sh regenerates ~/.config/multi-docker/edge.override.yml before every
edge command, adding one --address=/<bd>/127.0.0.1 argument to dnsmasq per configured
base domain — so every domain in BASE_DOMAINS resolves. See
Multiple Base Domains.
Stopping the edge stops everything
Section titled “Stopping the edge stops everything”Recreating after a runtime update
Section titled “Recreating after a runtime update”If edge up recreates the edge network on a subnet mismatch, attached project containers
get detached — and a plain restart won’t fix it (no re-render, no re-attach). Use
mdocker cycle for the robust sequence: stop running projects → edge down + up →
up <name> --auto-remap-ports so everything re-attaches to the fresh network.
Cookie-Einstellungen
Statistik-Werkzeuge setzen wir nur ein, wenn du zustimmst. Die notwendige Speicherung hält die Seite funktionsfähig; alles andere bleibt aus, bis du entscheidest.
Speichert deine Entscheidung aus diesem Dialog in deinem Browser (localStorage). Kein Cookie, keine Weitergabe an Dritte.
Google Analytics 4 über den Google Tag Manager, um die Nutzung der Seite zu messen. Wird erst nach deiner Einwilligung geladen.