feat: Add plain text CV endpoint and contact form with security
Plain text endpoint: - Add /text route for plain text CV (for curl/AI crawlers) - Use k3a/html2text library for HTML-to-text conversion - Add Plain Text button to hamburger menu with UI translations Contact form feature: - Add ContactHandler with proper email service integration - Add CSRF protection middleware - Add rate limiting (5 submissions/hour per IP) - Add honeypot and timing-based bot protection - Add input validation with detailed error messages - Add security logging middleware - Add browser-only middleware for API protection Code quality: - Fix all golangci-lint errcheck warnings for w.Write calls - Remove duplicate getClientIP functions - Wire up ContactHandler in routes.Setup
This commit is contained in:
@@ -49,6 +49,19 @@ ALLOWED_ORIGINS=
|
||||
BEHIND_PROXY=false
|
||||
TRUSTED_PROXY_IP=
|
||||
|
||||
# Email Configuration (Contact Form)
|
||||
# For Gmail:
|
||||
# 1. Enable 2FA in your Google account
|
||||
# 2. Go to https://myaccount.google.com/apppasswords
|
||||
# 3. Generate an App Password
|
||||
# 4. Use that password here (not your regular Gmail password)
|
||||
SMTP_HOST=smtp.gmail.com
|
||||
SMTP_PORT=587
|
||||
SMTP_USER=your-email@gmail.com
|
||||
SMTP_PASSWORD=your-app-password-here
|
||||
SMTP_FROM_EMAIL=your-email@gmail.com
|
||||
CONTACT_EMAIL=txeo.msx@gmail.com
|
||||
|
||||
# Production Settings
|
||||
# Uncomment for production:
|
||||
# GO_ENV=production
|
||||
|
||||
Reference in New Issue
Block a user