homelab/compose/services/FreshRSS/API-STATUS.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

121 lines
3.9 KiB
Markdown

# FreshRSS API Status & Next Steps
## Current Configuration
✅ API enabled in FreshRSS
✅ API password set in user profile
✅ Tinyauth SSO removed
✅ Nginx configured with PATH_INFO
✅ Nginx configured to pass Authorization header
✅ Traefik configured to pass host header
## Issue
The API compatibility check still fails: `FAIL get HTTP Authorization header!`
This means the HTTP Authorization header isn't reaching PHP's `$_SERVER['HTTP_AUTHORIZATION']` variable.
## What We've Tried
1. ✅ Removed Tinyauth middleware (was blocking API)
2. ✅ Added fastcgi_param HTTP_AUTHORIZATION to nginx
3. ✅ Added PATH_INFO support (required by FreshRSS API)
4. ✅ Set API password in web interface
5. ✅ Configured Traefik pass host header
## The Root Cause
The nginx → PHP-FPM authorization header passthrough isn't working correctly in the LinuxServer.io FreshRSS image.
## Solution: Try Reeder Now Anyway
Even though the compatibility check fails, **Reeder might still work**. The check uses a different method than actual client authentication.
### Test in Reeder:
1. **Delete** existing FreshRSS account in Reeder
2. **Add New Account** → FreshRSS or Self-hosted
3. Enter:
- Server: `https://feeds.fig.systems`
- Username: `eddie`
- Password: `[YOUR API PASSWORD FROM WEB INTERFACE]`
4. **Try to sync**
The password should be the one you typed into the "API password" field in FreshRSS Profile settings.
## Alternative: Use Fever API Instead
Fever API uses different authentication and might work better.
### Your Fever Settings:
**Fever API URL:** `https://feeds.fig.systems/api/fever.php`
**Fever Key:** `b82fc4a3c3ff610ff270798ef6f93b13`
### In Reeder:
1. **Add Account****Fever**
2. Server: `https://feeds.fig.systems/api/fever.php`
3. Email: `eddie`
4. Password: `[YOUR WEB PASSWORD]` ← Uses web password, NOT API password!
Fever API doesn't require the Authorization header in the same way, so it might bypass this nginx issue.
## If Both Fail: Advanced Fix Required
If neither Google Reader API nor Fever API works, we need to:
1. **Switch to official FreshRSS Docker image** (not LinuxServer.io)
- Official image: `freshrss/freshrss:latest`
- Has proper nginx config out of the box
2. **Or: Use Apache instead of nginx** in LinuxServer image
- LinuxServer allows switching web servers
- Apache handles Authorization headers differently
3. **Or: Check Traefik logs** to see if header is being stripped there
```bash
docker logs traefik | grep -i authorization
```
## Recommended Action Plan
1. **TRY REEDER NOW** - might work despite compatibility check failure
2. **TRY FEVER API** - different auth method
3. **If both fail:** Check logs while attempting:
```bash
tail -f /home/eduardo_figueroa/homelab/compose/services/FreshRSS/config/log/nginx/access.log
```
Look for the API requests and their response codes
## Debug Commands
### Check what Reeder sends:
```bash
# Watch access log while connecting from Reeder
tail -f /home/eduardo_figueroa/homelab/compose/services/FreshRSS/config/log/nginx/access.log
```
### Test API manually:
```bash
# Replace with your actual API password
curl -v -d "Email=eddie" -d "Passwd=YOUR_API_PASSWORD" \
"https://feeds.fig.systems/api/greader.php/accounts/ClientLogin"
```
### Test Fever API:
```bash
curl -v -d "api_key=b82fc4a3c3ff610ff270798ef6f93b13" \
"https://feeds.fig.systems/api/fever.php?api"
```
## Sources & References
- [FreshRSS Authorization Header Issue #2308](https://github.com/FreshRSS/FreshRSS/issues/2308)
- [FreshRSS Apache/Nginx Configuration](https://freshrss.github.io/FreshRSS/en/admins/10_ServerConfig.html)
- [FreshRSS Mobile Access Guide](https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html)
- [Nginx API 401 Discussion #6183](https://github.com/FreshRSS/FreshRSS/discussions/6183)
---
**Bottom Line:** Try Reeder with the API password now. If it doesn't work, try Fever API. Both might work even though the compatibility check fails.