Main panel view with media server user management.
Riam is an admin panel for media servers that centralizes Emby and Jellyfin user management into a single clear and easy-to-use interface.
The goal is to simplify common tasks such as creating users, managing access, and checking the overall server status without navigating the internal settings of each platform.
Context
- React
- TanStack Router
- TanStack Query
- Hono
- Drizzle
- PostgreSQL
- Dragonfly
Tech stack
- Centralized Emby and Jellyfin user management from a single admin panel.
- Simple flows for user creation, access control, and server monitoring.
Key points
- Connecting hundreds of users across multiple servers drove requests per minute so high that my VPS was suspended on suspicion of a DDoS attack, forcing me to implement rate limiting and real-time metrics to control and observe traffic.
- I learned to use a Redis-like system (Dragonfly) to cache images and recent requests, as well as filtering out playbacks shorter than 60 seconds to avoid inserting noise into the server.
- I also learned to structure deployments in Coolify so the API and web release independently, allowing each service to be updated without disrupting the other.