docs: Update roadmap with Postal mail server completion
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run

This commit is contained in:
fullsizemalt 2025-12-23 18:01:22 -08:00
parent 5a60f3303a
commit 9eeba8571c

View file

@ -6,15 +6,24 @@
## Current Status Summary
### ✅ Email Service
### ✅ Email Service - COMPLETE
**Status: MAILGUN CONFIGURED**
**Status: POSTAL SELF-HOSTED (PRODUCTION READY)**
- Mailgun API as primary provider
- AWS SES as fallback
- From address: `noreply@elmeg.xyz`
- Frontend URL: `https://elmeg.xyz`
- **Pending:** DNS records for `mail.elmeg.xyz` subdomain
| Component | Status |
|-----------|--------|
| Postal Mail Server | ✅ Running on tangible-aacorn |
| SMTP Host | `smtp.elmeg.xyz:25` |
| Web Dashboard | <https://postal.elmeg.xyz> |
| SPF Record | ✅ Configured |
| DKIM Record | ✅ Configured |
| DMARC Record | ✅ Configured |
| Return Path | ✅ Configured |
**SMTP Credentials:**
- Username: `elmeg/main`
- Password: (in production .env)
### Templates Available
@ -35,9 +44,44 @@
| Auth Console Error Fix | ✅ Fixed |
| Videos Page Link Fix | ✅ Fixed |
| Hide Test Users | ✅ Implemented |
| Mailgun Integration | ✅ Code Ready |
| Bandcamp/Nugs Links | ✅ Complete |
| Enhanced Footer | ✅ Deployed |
| **Postal Mail Server** | ✅ Built & Deployed |
| **Email DNS Records** | ✅ SPF/DKIM/DMARC/RP |
| **SMTP Integration** | ✅ Backend configured |
---
## Postal Mail Server Details
### Infrastructure
| Component | Details |
|-----------|---------|
| Location | tangible-aacorn (Hetzner ARM64) |
| Build | Custom ARM64 from source |
| Database | MariaDB 11 |
| Queue | RabbitMQ 3.13 |
| Routing | Traefik with Let's Encrypt |
### DNS Records (Cloudflare)
| Type | Name | Value |
|------|------|-------|
| A | postal | 159.69.219.254 (DNS only) |
| A | smtp | 159.69.219.254 (DNS only) |
| MX | @ | smtp.elmeg.xyz (Priority 10) |
| TXT | @ | v=spf1 mx a ip4:159.69.219.254 ~all |
| TXT | postal-VkYvkc._domainkey | v=DKIM1; t=s; h=sha256; p=... |
| TXT | _dmarc | v=DMARC1; p=none; rua=mailto:admin@elmeg.xyz |
| CNAME | psrp | smtp.elmeg.xyz |
### Admin Access
- **URL:** <https://postal.elmeg.xyz>
- **Login:** <admin@elmeg.xyz>
- **Organization:** Elmeg
- **Mail Server:** main
---
@ -61,50 +105,21 @@
| Chase Song Played | Post-import check | Needs backend work |
| Weekly Digest | Email templates + cron | Future |
### Phase 3: Data & Account (Deferred)
| Feature | Notes |
|---------|-------|
| Export My Data | GDPR compliance, JSON download |
| Delete Account | Cascade delete + confirmation |
| Connected Accounts | OAuth providers (future) |
---
## External Links System
### ✅ Phase 1: Database + Admin - COMPLETE
- `bandcamp_link`, `nugs_link` on Show model
- `bandcamp_link`, `nugs_link` on Performance model
- Admin PATCH endpoints for both
- Bulk import endpoint: `POST /admin/import/external-links`
### ✅ Phase 2: Frontend Display - COMPLETE
- Show-level links (buttons next to tour info)
- Performance-level links (icons in setlist)
### Phase 3: Import Tools (Future)
- [ ] CSV import UI
- [ ] Admin bulk edit
---
## Bug Tracker
**Status: ✅ DEPLOYED**
- **URL:** `/bugs`
- **Features:**
- Bug/Feature request submission
- My Tickets view
- Known Issues (public)
- Ticket detail with comments
- Upvoting
- Admin status/visibility control
- **Database:** `ticket`, `ticketcomment` tables created
**Status: ✅ DEPLOYED at `/bugs`**
---
@ -112,22 +127,7 @@
### ✅ Phase 1: Jewel Tones (Complete)
12 gemstone-named colors available to all users
### Phase 2: Pastels (Unlock 1)
- Trigger: 5 shows attended OR 10 ratings
- Colors: Soft versions of jewel tones
### Phase 3: Neons (Unlock 2)
- Trigger: 15 shows attended OR Level 5
- Colors: Vibrant high-saturation
### Phase 4: Gradients (Unlock 3)
- Trigger: Level 10 OR special achievement
- Two-tone diagonal gradients
### Phase 2-4: (Future)
---
@ -135,8 +135,8 @@
### High Priority
- [ ] Configure Mailgun DNS records
- [ ] Add Mailgun env vars to production
- [ ] Test email verification flow end-to-end
- [ ] Test password reset flow end-to-end
### Medium Priority
@ -152,33 +152,13 @@
---
## Questions to Resolve
### 1. Analytics Provider
**Options:**
- **Plausible** (privacy-first, GDPR compliant, ~$9/mo)
- **Umami** (self-hosted, free)
- **PostHog** (product analytics + session replay)
### 2. Email DNS
**Needed for Mailgun:**
- SPF record for mail.elmeg.xyz
- DKIM records (2)
- MX records for bounce handling
- DMARC record
---
## Implementation Priority
### Immediate (Next Session)
### Immediate (Testing)
1. [ ] Add Mailgun env vars to production
2. [ ] Configure DNS for mail.elmeg.xyz
1. [ ] Register test account to trigger verification email
2. [ ] Test password reset flow
3. [ ] Monitor email deliverability in Postal dashboard
### This Week