Configure Caddy reverse proxy for landscaping-assistant.app on edge-proxy #434
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/pal-e-platform#434
Loading…
Add table
Add a link
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?
Type
Feature
Lineage
Depends on
ldraney/pal-e-platform #425(must land first to establishsalt/states/caddy/structure).Related to
ldraney/pal-e-platform #424(Hetzner edge node provisioning).Repo
ldraney/pal-e-platformUser Story
As a platform operator
I want Caddy on the Hetzner edge node to reverse-proxy landscaping-assistant.app traffic to the correct k3s service
So that landscaping-assistant.app is publicly accessible with auto-TLS, without breaking existing palinks.app routing
Context
The Hetzner edge node (178.156.129.142) is provisioned (#424) and already serves palinks.app via Caddy reverse proxy configured through Salt (#425). Both domains resolve to the same IP but route to different k3s services over the Tailscale mesh. This ticket extends the existing Caddy config to add landscaping-assistant.app, mirroring the palinks.app pattern established in #425.
File Targets
Files the agent should modify:
salt/states/caddy/Caddyfile.j2-- add landscaping-assistant.app server block and www redirect block (mirrors palinks.app pattern from #425)Files the agent should NOT touch:
salt/states/caddy/init.sls-- Salt state structure already established by #425; no changes neededCaddyfile.j2-- must not alter existing routingFeature Flag
none
Acceptance Criteria
curl -I https://landscaping-assistant.appreturns 200 after deploycurl -I https://www.landscaping-assistant.appreturns 301 permanent redirect tohttps://landscaping-assistant.applandscaping-assistant.appserver block proxying tolandscaping-assistant.tail5b443a.ts.net:443Test Expectations
curl -I https://landscaping-assistant.appreturns 200curl -I https://www.landscaping-assistant.appreturns 301 redirectcurl -I https://palinks.appstill returns 200 (no regression)salt-call state.apply caddyon edge nodeConstraints
Caddyfile.j2) -- all changes go through the template, not direct file edits on the nodelandscaping-assistant.tail5b443a.ts.net:443via Tailscale meshsalt/states/caddy/directory structure and Salt stateChecklist
Related
pal-e-platform-- project this affectsScope Review: NEEDS_REFINEMENT
Review note:
review-1463-2026-06-14File targets are too vague for agent consumption -- need concrete paths (e.g.,
salt/states/caddy/init.sls).custom-domainuser story entry onproject-landscaping-assistantarch-pal-e-platformScope Review: APPROVED (re-review)
Review note:
review-1463-2026-06-14-v2All 4 [BODY] recommendations from previous review (
review-1463-2026-06-14) are resolved:salt/states/caddy/Caddyfile.j2)landscaping-assistant.tail5b443a.ts.net:443)Known [SCOPE] gaps (missing
custom-domainstory note, missingarch-pal-e-platformnote) are being addressed separately and do not block.