homelab/compose/services/FreshRSS/REEDER-AUTH-DEBUG.md
Eduardo Figueroa 93b9c883a1 docs(freshrss): Add API troubleshooting documentation
Add comprehensive guides for debugging and resolving FreshRSS API
authentication issues with mobile apps.

Includes:
- API password setup instructions
- iOS app configuration (Reeder, NetNewsWire, etc.)
- Google Reader API vs Fever API comparison
- nginx Authorization header troubleshooting
- Debug logging locations and commands
- Common error patterns and solutions

Covers both successful resolution and known limitations.
2025-12-04 18:44:53 +00:00

237 lines
6.1 KiB
Markdown

# Reeder Authentication Failure - Troubleshooting
## Current Status
✅ API enabled in FreshRSS
✅ API password hash exists for user 'eddie'
✅ Tinyauth SSO removed
❌ Reeder getting 401 Unauthorized
## Log Analysis
```
POST /api/greader.php/accounts/ClientLogin HTTP/1.1" 401
```
This means:
- Reeder is correctly hitting the Google Reader API endpoint
- Authentication is failing (401 = Unauthorized)
- Either wrong password OR the API password hasn't been properly set
## The Issue: API Password vs Web Password
FreshRSS has TWO different passwords:
1. **Web Password** - For logging into https://feeds.fig.systems
2. **API Password** - For iOS apps (Reeder, NetNewsWire, etc.)
**You MUST use the API password in Reeder, not your web password!**
## Step-by-Step Fix
### 1. Generate/Regenerate API Password
**Via Web Interface (Easiest):**
1. Go to https://feeds.fig.systems
2. Log in with your **web password**
3. Click your username (top right) → **Configuration**
4. Click **Profile** tab
5. Scroll down to **"API management"** or **"API"** section
6. Look for **"API password"** field
7. Click **"Generate"** or **"Regenerate"** button
8. **Write down the password immediately** - it won't be shown again!
The password will look something like: `aB3xK9mP2wQz7nYv`
### 2. Configure Reeder
Open Reeder on your iOS device:
1. **Add Account** → Select **FreshRSS** or **Self-hosted**
2. Enter these details:
- **Server:** `https://feeds.fig.systems`
- **Username:** `eddie`
- **Password:** `[THE API PASSWORD FROM STEP 1]` ← NOT your web password!
### 3. Test Authentication
Try to sync in Reeder. If it still fails, continue to advanced troubleshooting below.
## Advanced Troubleshooting
### Test API Manually
Run this test script:
```bash
/tmp/test-freshrss-api.sh
```
Or manually:
```bash
# Replace YOUR_API_PASSWORD with the actual API password
curl -v -d "Email=eddie" -d "Passwd=YOUR_API_PASSWORD" \
"https://feeds.fig.systems/api/greader.php/accounts/ClientLogin"
# Should return 200 and an auth token, NOT 401
```
### Check What Reeder is Sending
Watch the logs while you try to connect from Reeder:
```bash
tail -f /home/eduardo_figueroa/homelab/compose/services/FreshRSS/config/log/nginx/access.log
```
Look for:
- Is username being sent correctly? (should be 'eddie')
- Multiple 401s = wrong password
- 404 = wrong URL endpoint
### Common Issues
#### Issue 1: Using Web Password Instead of API Password
**Symptom:** 401 errors
**Solution:** Generate API password in web interface, use THAT password
#### Issue 2: API Password Never Generated
**Symptom:** 401 errors
**Check:** Look in web interface - is the API password field empty?
**Solution:** Click "Generate" to create one
#### Issue 3: Wrong Username
**Symptom:** 401 errors
**Check:** Username must be exactly `eddie` (the FreshRSS username)
**Solution:** Double-check spelling and case
#### Issue 4: Wrong Server URL
**Symptom:** Connection errors or 404
**Check:** Must be `https://feeds.fig.systems` (no trailing slash)
**Solution:** Remove any extra characters
#### Issue 5: Reeder Using Wrong API Type
**Symptom:** 404 or unexpected responses
**Solution:** In Reeder, make sure you selected:
- "FreshRSS" account type (if available)
- OR "Self-hosted" → "Google Reader API"
- NOT "Fever API" (different authentication)
## Verify API is Actually Working
### Method 1: Use Fever API Instead
FreshRSS also supports Fever API. Your Fever key is:
```
b82fc4a3c3ff610ff270798ef6f93b13
```
Try in Reeder:
1. **Add Account****Fever**
2. **Server:** `https://feeds.fig.systems/api/fever.php`
3. **Email:** `eddie`
4. **Password:** Your **web password** (Fever uses web password, not API password!)
If Fever works but Google Reader API doesn't, there's an issue with the Google Reader API specifically.
### Method 2: Check from Another Device
Try accessing from desktop:
```bash
curl -d "Email=eddie" -d "Passwd=YOUR_API_PASSWORD" \
"https://feeds.fig.systems/api/greader.php/accounts/ClientLogin"
```
If this returns a token, the API works and the issue is Reeder-specific.
## Reset Everything
If nothing works, reset the API authentication:
### 1. Clear API Password
```bash
# Backup first
cp /home/eduardo_figueroa/homelab/compose/services/FreshRSS/config/www/freshrss/data/users/eddie/config.php \
/home/eduardo_figueroa/homelab/compose/services/FreshRSS/config/www/freshrss/data/users/eddie/config.php.backup
# Edit the config file manually to clear API password
# Look for 'apiPasswordHash' and set it to empty string
```
### 2. Regenerate via Web Interface
1. Log into https://feeds.fig.systems
2. Go to Profile → API management
3. Generate NEW API password
4. Try again in Reeder
## Check FreshRSS Version
```bash
docker exec freshrss cat /app/freshrss/constants.php | grep FRESHRSS_VERSION
```
If it's very old, some API features might not work correctly.
Update:
```bash
cd /home/eduardo_figueroa/homelab/compose/services/FreshRSS
docker compose pull
docker compose up -d
```
## Enable More Verbose API Logging
Edit: `/home/eduardo_figueroa/homelab/compose/services/FreshRSS/config/www/freshrss/data/config.php`
Add:
```php
'simplepie_syslog_enabled' => true,
```
Then check syslog:
```bash
docker exec freshrss cat /var/log/syslog 2>/dev/null | grep -i "api\|auth\|greader"
```
## Still Not Working?
### Nuclear Option: Recreate User
If API auth is completely broken for this user:
1. **Export your feeds** (Settings → Import/Export)
2. **Create NEW user** in FreshRSS web interface
3. **Generate API password** for new user
4. **Import feeds** to new user
5. **Try Reeder** with new user credentials
## Test Results Template
When asking for help, provide:
```
Username: eddie
Server URL: https://feeds.fig.systems
Reeder Account Type: [FreshRSS / Self-hosted / Other]
API Password Generated: [Yes / No]
Using API Password (not web password): [Yes / No]
curl test result:
[paste output of test script]
Recent nginx logs:
[paste last 5 lines from access.log during attempt]
```
---
**Most Common Solution:** You need to generate a NEW API password in the web interface and use THAT specific password in Reeder, not your web login password.