Remove Gorush, use direct APNs/FCM, fix worker queries

- Remove Gorush push server dependency (now using direct APNs/FCM)
- Update docker-compose.yml to remove gorush service
- Update config.go to remove GORUSH_URL
- Fix worker queries:
  - Use auth_user instead of user_user table
  - Use completed_at instead of completion_date column
- Add NotificationService to worker handler for actionable notifications
- Add docs/PUSH_NOTIFICATIONS.md with architecture documentation
- Update README.md, DOKKU_SETUP.md, and dev.sh

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Trey t
2025-12-06 00:59:42 -06:00
parent 91a1f7ebed
commit 5a6bad3ec3
8 changed files with 423 additions and 263 deletions

View File

@@ -233,19 +233,17 @@ dokku config:set casera-api \
### 4. Push Notifications (Optional)
The API uses direct APNs/FCM connections (no external push server needed):
```bash
dokku config:set casera-api \
GORUSH_CORE_PORT=8080 \
GORUSH_IOS_ENABLED=true \
GORUSH_IOS_KEY_PATH=/push_certs/AuthKey_R9N3SM2WD5.p8 \
GORUSH_IOS_KEY_ID=R9N3SM2WD5 \
GORUSH_IOS_TEAM_ID=V3PF3M6B6U \
GORUSH_IOS_TOPIC=com.tt.casera.CaseraDev \
GORUSH_IOS_PRODUCTION=true \
GORUSH_ANDROID_ENABLED=false
APNS_AUTH_KEY_PATH=/push_certs/AuthKey_R9N3SM2WD5.p8 \
APNS_AUTH_KEY_ID=R9N3SM2WD5 \
APNS_TEAM_ID=V3PF3M6B6U \
APNS_TOPIC=com.tt.casera.CaseraDev \
APNS_PRODUCTION=true \
FCM_SERVER_KEY=your-firebase-server-key
```
// GORUSH_ANDROID_APIKEY=your-firebase-server-key
### 5. Admin Panel URL
@@ -387,43 +385,6 @@ dokku logs casera-api -p worker
---
#### 7. Set Proxy Port
```bash
dokku proxy:ports-set gorush http:80:8080
```
#### 8. Restart Gorush
```bash
dokku ps:restart gorush
```
#### 9. Configure Casera API to Use Gorush
```bash
dokku config:set casera-api GORUSH_URL=http://gorush.web:8080
```
#### 10. Verify Gorush is Running
```bash
# Check status
dokku ps:report gorush
# Check logs
dokku logs gorush
# Test health endpoint (if you have a domain set)
curl http://gorush.yourdomain.com/api/stat/go
```
### Option B: Use External Push Service
Configure the app to use an external push notification service instead.
---
## Maintenance Commands
### View Logs
@@ -597,7 +558,9 @@ df -h
| `EMAIL_HOST_PASSWORD` | Yes | SMTP password |
| `APPLE_CLIENT_ID` | No | iOS Bundle ID |
| `APPLE_TEAM_ID` | No | Apple Developer Team ID |
| `GORUSH_URL` | No | Push notification server URL |
| `APNS_AUTH_KEY_PATH` | No | Path to APNs .p8 key |
| `APNS_AUTH_KEY_ID` | No | APNs Key ID |
| `APNS_TEAM_ID` | No | APNs Team ID |
| `APNS_TOPIC` | No | APNs topic (bundle ID) |
| `APNS_PRODUCTION` | No | Use production APNs (default: false) |
| `FCM_SERVER_KEY` | No | Firebase Cloud Messaging server key |