Baserow SMTP Email Setup

Status: NOT YET WORKING — needs docker-compose update with correct SMTP credentials. Baserow functions fine without email. This is only needed for invite notifications and password resets. Last attempted: 2026-03-28

What’s Done

  • Baserow self-hosted instance running and healthy at baserow.solanasis.com
  • Admin account: ds@solanasis.com (JWT auth confirmed working)
  • DB token (BASEROW_DB_TOKEN): confirmed working for row CRUD
  • Infisical updated: BASEROW_EMAIL changed from admin@solanasis.com to ds@solanasis.com
  • All repo .env files re-synced
  • Brevo SMTP credentials stored in Infisical /shared/:
    • BREVO_SMTP_USER = xxx@smtp-brevo.com (Brevo-assigned SMTP login — NOT your sender address)
    • BREVO_SMTP_KEY = active SMTP key (starts with xsmtpsib-)

CRITICAL: The SMTP login username (BREVO_SMTP_USER) is the Brevo-assigned xxx@smtp-brevo.com address from Settings > SMTP & API > SMTP tab. It is NOT the sender address (hi@solanasis.com). Using the sender address as the login will cause 535 authentication errors.

What’s Remaining

  1. Brevo SMTP credentials are now active in Infisical /shared/ (updated 2026-03-28)
    • To update: secret set BREVO_SMTP_KEY "xsmtpsib-..." -f shared and secret set BREVO_SMTP_USER "xxx@smtp-brevo.com" -f shared
  2. Add SMTP to docker-compose — Edit /home/zasage/_solanasis/baserow/docker-compose.yml on WSL2:
    environment:
      # ... existing vars ...
      EMAIL_SMTP: "True"
      EMAIL_SMTP_HOST: "smtp-relay.brevo.com"
      EMAIL_SMTP_PORT: "587"
      EMAIL_SMTP_USE_TLS: "True"
      EMAIL_SMTP_USER: "<BREVO_SMTP_USER from Infisical>"
      EMAIL_SMTP_PASSWORD: "<BREVO_SMTP_KEY from Infisical>"
      FROM_EMAIL: "hi@solanasis.com"
  3. Restart Baserow: wsl -- bash -c 'cd $HOME/_solanasis/baserow && docker compose up -d'
  4. Test: Hit POST /api/_health/email/ with JWT auth and {"target_email":"ds@solanasis.com"}

API Credential Notes

CredentialValueStatus
BASEROW_DB_TOKENIn Infisical /shared/Working — row CRUD on self-hosted
BASEROW_EMAILds@solanasis.comWorking — JWT auth confirmed
BASEROW_PASSWORDIn Infisical /shared/Working — JWT auth confirmed
BASEROW_API_KEYdxYJOsem6zTPwfkl3Ht098InP75uRYBTSTALE — legacy Baserow Cloud key, returns 401. No active code uses it. Safe to remove.

Helper Script

c:/_my/_solanasis/infisical/add_brevo_smtp.py — securely prompts for SMTP credentials (via getpass) and uploads to Infisical /shared/. Safe to re-run to overwrite.