infra(redirect): workwell.os → twh.os 301 redirect container#61
Conversation
- infra/redirect/Dockerfile: nginx:1.27-alpine serving a single `return 301 https://twh.os.mieweb.org$request_uri` rule. - infra/redirect/nginx.conf: the redirect server block. - infra/redirect/README.md: first-time owner steps (make GHCR package public; run workflow_dispatch; verify with curl -I). - .github/workflows/deploy-workwell-redirect-mieweb.yml: workflow_dispatch-only; builds ghcr.io/taleef7/workwell-redirect and deploys to hostname `workwell` via the shared deploy-mieweb-container.sh script. No new secrets needed beyond LAUNCHPAD_API_URL/KEY. Acceptance: curl -I https://workwell.os.mieweb.org/ → 301 Location: https://twh.os.mieweb.org/ (after owner makes package public + runs workflow). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2e38b699ee
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| `deploy-redirect` job in the workflow with `REDIRECT_HOSTNAME: workwell-api` | ||
| and the same image. The nginx config redirects all paths unconditionally. |
There was a problem hiding this comment.
Don't reuse the frontend redirect image for API
If an operator follows this optional step for workwell-api.os.mieweb.org, the reused image is hardcoded in infra/redirect/nginx.conf to redirect every request to https://twh.os.mieweb.org, so API paths such as /api/auth/login would be sent to the frontend host instead of https://twh-api.os.mieweb.org; direct clients using the old API hostname would fail rather than reach the replacement API.
Useful? React with 👍 / 👎.
Step 4 suggested reusing the same nginx image for workwell-api.os, but nginx.conf hardcodes https://twh.os.mieweb.org, so API paths would land on the frontend rather than twh-api. Removed the suggestion entirely; a proper API-hostname redirect would need a separate nginx conf. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary
infra/redirect/with a minimal nginx:1.27-alpine image that issues a permanent301 Moved Permanentlyfromhttps://workwell.os.mieweb.org$request_uri→https://twh.os.mieweb.org$request_uri..github/workflows/deploy-workwell-redirect-mieweb.yml—workflow_dispatch-only, no new secrets (reusesLAUNCHPAD_API_URL/LAUNCHPAD_API_KEY), deploys to hostnameworkwellvia the shareddeploy-mieweb-container.shscript.infra/redirect/README.mddocuments the two manual owner steps needed before first deploy.Manual owner steps before running the workflow
https://github.com/Taleef7/workwell/pkgs/container/workwell-redirect→ Package settings → Change visibility → Public. MIE cluster pulls anonymously.replace_existing: trueif theworkwellhostname already exists in the MIE manager UI.Acceptance criteria
Test plan
ghcr.io/taleef7/workwell-redirect:latestand:sha-<SHA>to GHCRrunningatworkwell.os.mieweb.orgcurl -I https://workwell.os.mieweb.org/foo/barreturns301 Location: https://twh.os.mieweb.org/foo/bar(path preserved)🤖 Generated with Claude Code