Menu
Homerun docs

Stacks

A stack groups services together and gives them a shared, private Docker network, member services can reach each other by plain slug (http://api:8080), separate from the shared homerun every service also joins for Traefik routing. A stack also prefixes its member services' public subdomains: <stackSlug>-<slug>.<baseDomain>.

Every stack gets its network created alongside the stack row and removed on delete. Deleting a stack (cascadeDelete) is the real "delete a stack" operation, it stops and removes every member container, deletes their deployment history and service rows, deletes the stack row itself, and finally removes the stack's Docker network, in that order. A container or swarm service Docker reports as already gone counts as removed; if one can't be removed for any other reason (the daemon is unreachable, say), nothing is deleted and the page offers Delete anyway, which drops the records and leaves that workload for you to clean up by hand.

Assign a service to a stack on the New Service wizard, or move it later from the service's Settings tab. A stack's page lists its services with what each one is using right now; its Settings tab renames it (name, slug, description) and deletes it.

/stacks has a search box, a list/card view toggle, and a pager once you have more than a page's worth, same as the services list and searched/paginated server-side the same way. Deleting a stack from its own page requires typing the stack's name to confirm, since it also deletes every service inside it.

This guide lives in the project repo: edit it there, and this page follows within a day.