Add more generic SMTP options
This commit is contained in:
57
README.md
57
README.md
@@ -30,7 +30,7 @@ A production-ready Minecraft server administration panel built with Next.js, Bun
|
||||
| Auth | [Better Auth v1.5](https://better-auth.com) |
|
||||
| UI | [shadcn/ui v4](https://ui.shadcn.com) + [Base UI](https://base-ui.com) + Tailwind CSS v4 |
|
||||
| Real-time | [Socket.io](https://socket.io) |
|
||||
| Email | [Resend](https://resend.com) |
|
||||
| Email | [Nodemailer](https://nodemailer.com) (any SMTP server) |
|
||||
|
||||
---
|
||||
|
||||
@@ -219,12 +219,59 @@ bun run db:studio
|
||||
| `NEXT_PUBLIC_BETTER_AUTH_URL` | No | *(inferred from browser)* | Browser-side auth URL. Only needed if the public URL differs from what the browser can infer (e.g. behind a proxy). |
|
||||
| `BETTER_AUTH_TRUSTED_ORIGINS` | No | `http://localhost:3000` | Comma-separated list of allowed origins for CORS and CSRF protection. Add your public domain in production. |
|
||||
|
||||
### Email
|
||||
### Email (SMTP)
|
||||
|
||||
CubeAdmin sends email via any standard SMTP server — Gmail, Mailgun, Postfix, Brevo, Amazon SES, or your own self-hosted relay. Email is only used for team invitations and magic-link sign-in. The app starts without email configured; invitations will fail gracefully with a logged error.
|
||||
|
||||
| Variable | Required | Default | Description |
|
||||
|---|---|---|---|
|
||||
| `RESEND_API_KEY` | No* | — | API key for [Resend](https://resend.com). Required for team invitation emails to work. The app starts without it, but invitations will fail silently. |
|
||||
| `EMAIL_FROM` | No | `CubeAdmin <noreply@example.com>` | The sender address used for outgoing emails. Must be a verified address in your Resend account. |
|
||||
| `SMTP_HOST` | No* | — | SMTP server hostname (e.g. `smtp.gmail.com`, `smtp.mailgun.org`, `localhost`). Required for any email to be sent. |
|
||||
| `SMTP_PORT` | No | `587` | SMTP server port. Common values: `587` (STARTTLS), `465` (TLS/SSL), `25` (plain, relay), `1025` (local dev). |
|
||||
| `SMTP_SECURE` | No | `false` | Set to `true` to use implicit TLS (port 465). Leave `false` for STARTTLS (port 587) or plain. |
|
||||
| `SMTP_USER` | No | — | SMTP authentication username. Leave unset for unauthenticated relay (e.g. local Postfix). |
|
||||
| `SMTP_PASS` | No | — | SMTP authentication password or app-specific password. |
|
||||
| `EMAIL_FROM` | No | `CubeAdmin <noreply@example.com>` | The `From` address on outgoing emails. Must be authorised by your SMTP provider to avoid spam filtering. |
|
||||
|
||||
#### Common SMTP configurations
|
||||
|
||||
**Gmail** (app password required — enable 2FA first):
|
||||
```env
|
||||
SMTP_HOST=smtp.gmail.com
|
||||
SMTP_PORT=587
|
||||
SMTP_SECURE=false
|
||||
SMTP_USER=you@gmail.com
|
||||
SMTP_PASS=your-app-password
|
||||
EMAIL_FROM=CubeAdmin <you@gmail.com>
|
||||
```
|
||||
|
||||
**Mailgun**:
|
||||
```env
|
||||
SMTP_HOST=smtp.mailgun.org
|
||||
SMTP_PORT=587
|
||||
SMTP_SECURE=false
|
||||
SMTP_USER=postmaster@mg.yourdomain.com
|
||||
SMTP_PASS=your-mailgun-smtp-password
|
||||
EMAIL_FROM=CubeAdmin <noreply@yourdomain.com>
|
||||
```
|
||||
|
||||
**Amazon SES**:
|
||||
```env
|
||||
SMTP_HOST=email-smtp.us-east-1.amazonaws.com
|
||||
SMTP_PORT=587
|
||||
SMTP_SECURE=false
|
||||
SMTP_USER=your-ses-access-key-id
|
||||
SMTP_PASS=your-ses-smtp-secret
|
||||
EMAIL_FROM=CubeAdmin <noreply@yourdomain.com>
|
||||
```
|
||||
|
||||
**Local dev with Mailpit** (catches all emails, no real sending):
|
||||
```env
|
||||
SMTP_HOST=localhost
|
||||
SMTP_PORT=1025
|
||||
SMTP_SECURE=false
|
||||
# no SMTP_USER / SMTP_PASS needed
|
||||
```
|
||||
Run Mailpit with `docker run -p 1025:1025 -p 8025:8025 axllent/mailpit` and view emails at [http://localhost:8025](http://localhost:8025).
|
||||
|
||||
### Minecraft Server
|
||||
|
||||
@@ -303,7 +350,7 @@ Roles are assigned when inviting team members. The initial superadmin can promot
|
||||
│ ├── auth/ # Better Auth config + client
|
||||
│ ├── backup/ # Backup manager
|
||||
│ ├── db/ # Drizzle schema + migrations
|
||||
│ ├── email/ # Resend email client
|
||||
│ ├── email/ # Nodemailer SMTP client + email templates
|
||||
│ ├── minecraft/ # Process manager, RCON, version fetcher
|
||||
│ ├── security/ # Rate limiting
|
||||
│ └── socket/ # Socket.io server setup
|
||||
|
||||
Reference in New Issue
Block a user