docs: The release template ties deploy-vps to traefik, which sends readers to write a local action they do not need #78
Labels
No labels
priority/P0
priority/P1
priority/P2
priority/P3
size/L
size/M
size/S
size/XL
size/XS
state/blocked
state/done
state/in-progress
state/in-review
state/needs-refinement
state/ready
type/bug
type/chore
type/feature
type/refactor
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
amtronics/platform-actions#78
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
The header of
templates/release.ymltells a reader to choose between twodeploy paths, and the distinction it draws is not the real one:
That reads as:
deploy-vpsimplies traefik; published ports behind a reverseproxy imply writing your own action. Neither half holds.
deploy-vpsdoes no routing at all. It copiesdocker-compose.vps.ymlandinfra/alloy/config.alloy, writes the host.env, pulls and rolls out. Whatroutes traffic is whatever the compose declares — traefik labels, published
ports, or nothing.
ahmad/nameyis the counter-example and it is deployed today: it usesdeploy-vps@v3and publishes LAN ports (MARKETING_PUBLISH,PORTAL_PUBLISH)for the fleet's nginx-proxy-manager edge to forward to. By this header's
advice its author should have written a local action, which would have been
work for nothing.
The apps host is behind nginx-proxy-manager, not traefik — the same claim was
corrected in
ahmad/portfolio's documents on 2026-09-09, where three placesattributed routing to traefik and the compose header said the opposite.
The cost is not the wrong word. It is that the sentence sends a reader who is
behind a reverse proxy — which is every application on this fleet — away from
the shared action and toward maintaining their own, and a local deploy action
then diverges:
ahmad/imamah's leavesCOMPOSE_PROFILESempty on a partialGRAFANA_PROM_*set wheredeploy-vpsexits 1, so a half-configured deploysucceeds silently without metrics.
Scope
templates/release.yml, and any other linein this repository that ties
deploy-vpsto traefik or to a particular edge.deploy-vps's behaviour. Nothing about the action changes.README.mdsections for the other actions, unless they carry thesame claim.
ahmad/imamah's local action, and whether it should be replaced.Acceptance criteria
templates/release.yml, when its header is read, then it does notstate or imply that
deploy-vpsrequires or assumes traefik.then the reason given is one that actually distinguishes the two — not
the presence of a reverse proxy or of published ports.
when they follow the template, then they are pointed at
deploy-vpsandan example that does the same (
ahmad/namey).remaining occurrence is accurate for the host it describes.
Plan.
templates/release.yml's header is the only place that tiesdeploy-vpsto traefik;README.md'sdeploy-vpssection describes what the action does and does not make the claim. So this is a header rewrite plus agrep -i traefiksweep of the repository to satisfy the fourth criterion.The replacement has to say something true about when a local deploy action is warranted, since removing the false reason leaves a gap. From the two live examples:
deploy-vpscopiesdocker-compose.vps.ymlby that exact filename plusinfra/alloy/config.alloy, writes the host.envfromapp-env, pulls and rolls out with a health check. A repository needs its own action when it cannot work that way —ahmad/imamahuses a different compose filename set and its own health-check strategy. Publishing ports is not a reason:ahmad/nameypublishesMARKETING_PUBLISH/PORTAL_PUBLISHbehind the nginx-proxy-manager edge and uses the shared action.One ambiguity, resolved the safe way: I will not claim traefik is unused fleet-wide.
suhba/suhba-docsruns onvps-productionand its traefik labels are live and load-bearing. The header will say routing is the compose's business and name both shapes, rather than replacing one wrong edge with another.templates/release.ymlis also touched by the open #82 (the notifystatus:expression, ~line 311). This change is confined to the header comment block, so the two do not overlap; whichever lands second rebases cleanly.