JB/.env.example
JobsBoard Deployer 50b8524775 feat(email): route outbound mail through Proton Mail Bridge SMTP; feat(apply): route one-click apply to employer site
Email:
- Add nodemailer; rewrite lib/email.ts to send via configured SMTP (Proton
  Mail Bridge) first, Resend fallback, then dev simulation.
- Forward SMTP_* env to web and add protonmail-bridge service in compose.
- Document Proton Bridge SMTP vars in .env.example files; add test-smtp.mjs.

Apply:
- OneClickApplyModal now opens the job's real posting URL (company/ATS site)
  in a new tab as the primary action when jobUrl is present, and records the
  external application so the card shows 'Applied'.
- Internal one-click snapshot flow retained for jobs without an external URL.
- POST /api/applications accepts external:true (skips profile completeness)
  and records an external application.
2026-09-07 14:46:57 -04:00

42 lines
1.9 KiB
Text

# =================================================================
# JobsBoard Production Environment Configuration
# =================================================================
# Database (PostgreSQL container credentials)
POSTGRES_USER=postgres
POSTGRES_PASSWORD=replace_with_a_secure_password
POSTGRES_DB=jobsboard
DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?schema=public
# Application URLs, Ports & Authentication
WEB_PORT=3000
DB_PORT=5432
NEXTAUTH_SECRET=replace_with_a_random_32_char_secret_string
NEXTAUTH_URL=http://localhost:3000
NODE_ENV=production
# Scraper Interval & Optional Proxy Configuration
SCRAPE_INTERVAL_MINUTES=30
# SOCKS5_PROXY=socks5://username:password@host:port
# PROXY_URL=http://username:password@host:port
# =================================================================
# Outbound Email via Proton Mail Bridge (SMTP relay)
# =================================================================
# The web app sends mail through the `protonmail-bridge` container, which is a
# local SMTP relay for your Proton account. Set these to the Bridge login:
# SMTP_USER = your Proton login email (e.g. you@proton.me)
# SMTP_PASS = the Proton Mail Bridge app-password (NOT your account password)
# generate it at Proton > Settings > Bridge/IMAP/SMTP
# SMTP_FROM = a sending address you own in Proton (your custom domain)
# A one-time `docker compose run -it protonmail-bridge` login is required to
# persist the Bridge credentials in the protonmail_bridge_data volume.
SMTP_HOST=protonmail-bridge
SMTP_PORT=25
SMTP_USER=you@proton.me
SMTP_PASS=your-proton-bridge-app-password
SMTP_FROM="JobsBoard <notifications@yourdomain.com>"
# Optional: passphrase protecting the Bridge GPG keyring (recommended)
BRIDGE_KEYRING_PASSPHRASE=replace_with_a_secure_passphrase
# Host port to reach the Bridge SMTP for local testing (container-internal is 25)
BRIDGE_SMTP_PORT=1025