fix(deploy): pass SES config through to the app stack
The stack env is assembled from Gitea repo secrets by the deploy workflows' `env_data` block — there is no .env file on the host for the app stack. SES was in neither, so `MailService` came up unconfigured on every deployment and, with NODE_ENV=production killing the stdout dev fallback, every notification and renewal aviso failed. Wire SES_REGION / SES_FROM / SES_FROM_NAME / SES_ACCESS_KEY / SES_SECRET_KEY / SES_CONFIGURATION_SET / NOTIFICATION_ADMIN_EMAILS through both galactus and cubex. No `_GALACTUS` suffix: one SES identity serves every deployment. Kept out of the required-secrets preflight — mail is not needed to boot, and failing a deploy over it would be wrong. Preflight warns instead, since the failure is otherwise invisible until someone clicks "Ejecutar". Also corrects the comments added in the previous commit, which claimed these belonged in a host env file rather than in CI secrets. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -138,11 +138,17 @@ Without SES_* the API still boots and `MailService` falls back to stdout
|
||||
in dev (`NODE_ENV !== "production"`). In production every send throws
|
||||
`ServiceUnavailableException` and the row is recorded as `FAILED`.
|
||||
|
||||
These are **runtime** config, set in the deployed stack's env file on the
|
||||
host (`deploy/jorgecuadros-app.env.example` documents the full set) — not
|
||||
Gitea Actions secrets. The build never sends mail; only the running
|
||||
container does, and the production image sets `NODE_ENV=production`, so a
|
||||
blank SES config fails loudly rather than falling back to stdout.
|
||||
These are **runtime** config — read at container boot, never baked into the
|
||||
image. For the Portainer deployments they are set as **Gitea repo secrets**
|
||||
and injected into the stack env by the `env_data` block of
|
||||
`.gitea/workflows/deploy-galactus.yml` (and `deploy.yml`), exactly like
|
||||
`DATABASE_URL` and `SESSION_SECRET`. Unlike most secrets there they carry no
|
||||
`_GALACTUS` suffix: one SES identity serves every deployment.
|
||||
|
||||
They are optional to *deploy* — the preflight only warns — but the
|
||||
production image sets `NODE_ENV=production`, which disables the stdout dev
|
||||
fallback, so a blank SES config makes every send fail loudly rather than
|
||||
quietly going nowhere.
|
||||
|
||||
## UI
|
||||
|
||||
|
||||
Reference in New Issue
Block a user