diff --git a/.agents/devops-engineer/CI_CD_PIPELINE.md b/.agents/devops-engineer/CI_CD_PIPELINE.md index ea564b3..7c8d5f4 100644 --- a/.agents/devops-engineer/CI_CD_PIPELINE.md +++ b/.agents/devops-engineer/CI_CD_PIPELINE.md @@ -312,13 +312,26 @@ All env vars must be configured in your hosting platform, not in the workflow. | `NODE_ENV` | Yes | — | Must be `production` | | `HOST` | Yes | — | `0.0.0.0` | | `PORT` | Yes | — | `10000` | -| `CONTACT_EMAIL` | No | — | Where contact form sends emails | -| `SMTP_HOST` | No | — | Email server host | -| `SMTP_USER` | No | — | Email server username | -| `SMTP_PASS` | No | — | Email server password (use platform secrets) | +| `CONTACT_EMAIL` | Yes (legacy) | — | Legacy admin recipient for contact form; kept for backward compatibility with older code paths. Mirror of `MAIL_ADMIN_TO`. | +| `MAIL_ADMIN_TO` | Yes | — | Address that receives "Tell us about your project" and contact form submissions. | +| `SMTP_HOST` | Yes | — | SMTP server hostname (e.g. `smtp.hostinger.com`). | +| `SMTP_PORT` | Yes | `587` | SMTP server port. Use `587` for STARTTLS, `465` for implicit TLS. | +| `SMTP_USER` | Yes | — | SMTP auth username (full email address). | +| `SMTP_PASS` | Yes | — | SMTP auth password — MUST be stored as a platform secret, never plaintext. | +| `SMTP_FROM` | Yes | — | `From:` address used by outbound mail (should match `SMTP_USER` or an allowed alias). | +| `SMTP_FROM_NAME` | Yes | — | Human-readable display name shown alongside `SMTP_FROM`. | +| `SMTP_SECURE` | Yes | `false` | `true` only for implicit-TLS ports (465). For port 587 keep `false` and rely on STARTTLS. | +| `SMTP_STARTTLS` | Yes | `true` | Negotiate STARTTLS on the SMTP connection. | +| `SMTP_REQUIRE_TLS` | Yes | `true` | Refuse to send if the server does not advertise STARTTLS — prevents silent plaintext fallback. | +| `SMTP_AUTH` | Yes | `true` | Authenticate with `SMTP_USER` / `SMTP_PASS`. | +| `SMTP_CONNECTION_TIMEOUT_MS` | No | `10000` | Socket connect timeout in milliseconds. | +| `SMTP_GREETING_TIMEOUT_MS` | No | `10000` | Wait time for the server greeting (EHLO/HELO) in milliseconds. | +| `SMTP_SOCKET_TIMEOUT_MS` | No | `10000` | Idle socket timeout in milliseconds (covers read/write while transferring the message). | | `SENTRY_DSN` | No | — | Sentry error tracking | | `LOG_LEVEL` | No | `info` | Logging verbosity | +> Production SMTP is provisioned on Hostinger and configured in the **Default** environment via the platform's env-var store (`SMTP_PASS` flagged as secret). After changing any `SMTP_*` value you MUST restart the `frontend` service so the new variables are picked up by the Astro SSR process. + --- ## Rollback Procedures