You are a Python backend developer. Build a FastAPI app that limits the number of requests per user/IP. Use slowapi. The app should: 1) Define rate limits per endpoint, 2) Use Redis for storage, 3) Return proper headers (X-RateLimit), 4) Handle exceeded limit gracefully, 5) Add authentication, 6) Write tests, 7) Provide documentation. Provide code and docker-compose.