SMTP service setup.
This commit is contained in:
51
setup/cluster-services/smtp/README.md
Normal file
51
setup/cluster-services/smtp/README.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# SMTP Configuration Service
|
||||
|
||||
This service configures SMTP settings for Wild Cloud applications to send transactional emails.
|
||||
|
||||
## Overview
|
||||
|
||||
The SMTP service doesn't deploy any Kubernetes resources. Instead, it helps configure global SMTP settings that can be used by Wild Cloud applications like Ghost, Gitea, and others for sending:
|
||||
|
||||
- Password reset emails
|
||||
- User invitation emails
|
||||
- Notification emails
|
||||
- Other transactional emails
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
./setup/cluster-services/smtp/install.sh
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The setup script will prompt for:
|
||||
|
||||
- **SMTP Host**: Your email provider's SMTP server (e.g., `email-smtp.us-east-2.amazonaws.com` for AWS SES)
|
||||
- **SMTP Port**: Usually `465` for SSL or `587` for STARTTLS
|
||||
- **SMTP User**: Username or access key for authentication
|
||||
- **From Address**: Default sender email address
|
||||
- **SMTP Password**: Your password, secret key, or API key (entered securely)
|
||||
|
||||
## Supported Providers
|
||||
|
||||
- **AWS SES**: Use your Access Key ID as user and Secret Access Key as password
|
||||
- **Gmail/Google Workspace**: Use your email as user and an App Password as password
|
||||
- **SendGrid**: Use `apikey` as user and your API key as password
|
||||
- **Mailgun**: Use your Mailgun username and password
|
||||
- **Other SMTP providers**: Use your standard SMTP credentials
|
||||
|
||||
## Applications That Use SMTP
|
||||
|
||||
- **Ghost**: User management, password resets, notifications
|
||||
- **Gitea**: User registration, password resets, notifications
|
||||
- **OpenProject**: User invitations, notifications
|
||||
- **Future applications**: Any app that needs to send emails
|
||||
|
||||
## Testing
|
||||
|
||||
After configuration, test SMTP by:
|
||||
|
||||
1. Deploying an application that uses email (like Ghost)
|
||||
2. Using password reset or user invitation features
|
||||
3. Checking application logs for SMTP connection issues
|
52
setup/cluster-services/smtp/install.sh
Executable file
52
setup/cluster-services/smtp/install.sh
Executable file
@@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
# Initialize Wild Cloud environment
|
||||
if [ -z "${WC_ROOT}" ]; then
|
||||
print "WC_ROOT is not set."
|
||||
exit 1
|
||||
else
|
||||
source "${WC_ROOT}/scripts/common.sh"
|
||||
init_wild_env
|
||||
fi
|
||||
|
||||
print_header "Setting up SMTP Configuration"
|
||||
|
||||
print_info "SMTP configuration allows Wild Cloud applications to send transactional emails"
|
||||
print_info "(password resets, notifications, etc.) through your email service provider."
|
||||
echo ""
|
||||
|
||||
# Collect SMTP configuration
|
||||
print_info "Collecting SMTP configuration..."
|
||||
|
||||
prompt_if_unset_config "cloud.smtp.host" "Enter SMTP host (e.g., email-smtp.us-east-2.amazonaws.com for AWS SES)" ""
|
||||
prompt_if_unset_config "cloud.smtp.port" "Enter SMTP port (usually 465 for SSL, 587 for STARTTLS)" "465"
|
||||
prompt_if_unset_config "cloud.smtp.user" "Enter SMTP username/access key" ""
|
||||
prompt_if_unset_config "cloud.smtp.from" "Enter default 'from' email address" "no-reply@$(wild-config cloud.domain)"
|
||||
|
||||
print_success "SMTP configuration collected successfully"
|
||||
|
||||
# Collect SMTP password/secret
|
||||
print_info "Setting up SMTP password..."
|
||||
echo ""
|
||||
echo "For AWS SES, this would be your Secret Access Key."
|
||||
echo "For Gmail/Google Workspace, this would be an App Password."
|
||||
echo "For other providers, this would be your SMTP password."
|
||||
echo ""
|
||||
|
||||
prompt_if_unset_secret "cloud.smtp.password" "Enter SMTP password/secret key" ""
|
||||
|
||||
print_success "SMTP configuration setup complete!"
|
||||
echo ""
|
||||
echo "Your SMTP settings:"
|
||||
echo " Host: $(wild-config cloud.smtp.host)"
|
||||
echo " Port: $(wild-config cloud.smtp.port)"
|
||||
echo " User: $(wild-config cloud.smtp.user)"
|
||||
echo " From: $(wild-config cloud.smtp.from)"
|
||||
echo " Password: $(wild-secret cloud.smtp.password >/dev/null 2>&1 && echo "✓ Set" || echo "✗ Not set")"
|
||||
echo ""
|
||||
echo "Applications that use SMTP: ghost, gitea, and others"
|
||||
echo ""
|
||||
echo "To test SMTP configuration, deploy an app that uses email (like Ghost)"
|
||||
echo "and try the password reset or user invitation features."
|
Reference in New Issue
Block a user