A self-hosted server for managing TRMNL e-ink display devices. Take complete control of your devices with zero external dependencies.
- Device Management - Monitor and control all your TRMNL devices from a unified dashboard
- Dynamic Screens - Create custom screens with clock, weather, quotes, and more widgets
- Self-Hosted - Complete control over your data with zero external dependencies
- JSON API - Full API support for device setup, display rendering, and logging
- Real-time Monitoring - Track device status, logs, and system health
- Dark Mode - Beautiful light and dark themes
- Configure Your Device - Point your TRMNL device to this server's API endpoint
- Create Screens - Design custom screens in the dashboard with various templates
- Monitor & Manage - View device status, logs, and update screens in real-time
- Framework: Next.js 15 with App Router
- Database: Supabase (PostgreSQL)
- Styling: Tailwind CSS v4
- UI Components: shadcn/ui
- Deployment: Vercel
Required environment variables are automatically configured when using Supabase integration:
SUPABASE_URL- Your Supabase project URLSUPABASE_ANON_KEY- Your Supabase anonymous keyNEXT_PUBLIC_SUPABASE_URL- Public Supabase URLNEXT_PUBLIC_SUPABASE_ANON_KEY- Public Supabase keyDASHBOARD_PASSWORD- Password for dashboard access
POST /api/setup- Register a new deviceGET /api/display- Get display content for deviceGET /api/render- Generate BMP image for device (supports test mode)GET /api/test-image- Generate test pattern for debuggingPOST /api/log- Log device eventsGET /api/diagnostics- System health and diagnosticsGET /api/health- API health check
Visit these endpoints to test image generation:
```bash
https://your-app.vercel.app/api/render
https://your-app.vercel.app/api/test-image
https://your-app.vercel.app/api/render?device_id=YOUR_DEVICE_ID ```
- Configure your TRMNL device to point to:
https://your-app.vercel.app - The device will automatically register on first connection
- View device status and logs in the dashboard
- Images are automatically generated in 800x480 1-bit BMP format
```bash
npm install
npm run dev
npm run build ```
MIT