feat: production email (Resend) + offsite backup (B2)
Resend mail transport:
- composer require resend/resend-laravel (v1.4)
- Laravel 11 ships the 'resend' mailer config in config/mail.php + services
- To switch to production email: set MAIL_MAILER=resend + RESEND_API_KEY,
register the domain at resend.com/domains, and add the TXT + DKIM CNAME
records in Cloudflare. .env.example documents the required steps.
Backblaze B2 offsite backup:
- New filesystems 'b2' disk (S3-compatible, env: B2_KEY/SECRET/BUCKET/REGION/ENDPOINT)
- BackupAllTenantsCommand: after writing each tenant's zip to local disk, it
uploads the same file to the b2 disk under {YYYY-MM-DD}/{slug}.zip — only
when both B2_KEY and B2_BUCKET are set, so unconfigured installs are no-op
- Without offsite, backups live on the same VPS as production: a single
hardware failure loses everything. B2 + Resend together make the install
genuinely production-ready (people get email + offsite backup).
Tests (2 new):
- backup uploads to b2 (fake disk) when configured
- backup skips offsite when env vars not present
Full suite: 140 passed. Force-rebuild deploy required so composer install
picks up resend/resend-php.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -60,6 +60,21 @@ return [
|
||||
'report' => false,
|
||||
],
|
||||
|
||||
// Backblaze B2 (S3-compatible). Offsite backup target for backup:tenants.
|
||||
// Required env: B2_KEY, B2_SECRET, B2_BUCKET, B2_REGION (e.g. us-west-002),
|
||||
// B2_ENDPOINT (e.g. https://s3.us-west-002.backblazeb2.com).
|
||||
'b2' => [
|
||||
'driver' => 's3',
|
||||
'key' => env('B2_KEY'),
|
||||
'secret' => env('B2_SECRET'),
|
||||
'region' => env('B2_REGION', 'us-west-002'),
|
||||
'bucket' => env('B2_BUCKET'),
|
||||
'endpoint' => env('B2_ENDPOINT'),
|
||||
'use_path_style_endpoint' => false,
|
||||
'throw' => false,
|
||||
'report' => false,
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user