A modern web-based digital photo display system for creating beautiful fullscreen slideshows on portrait-oriented displays. Perfect for turning Raspberry Pi devices into stunning digital photo frames that showcase your memories with style.
GlowWorm transforms any display into an elegant photo frame with powerful features for managing, organizing, and presenting your photo collection. Built for home users, artists, businesses, and anyone wanting to display photos beautifully.

[Youtube demo of display device playing a slideshow]
| Dashboard | Images |
|---|---|
| Playlists | Displays |
|---|---|
| Settings |
|---|
Watch the complete walkthrough: GlowWorm Installation and Usage on YouTube
Image Management
- Upload and organize photos with automatic processing
- Create and manage albums with rename and delete options
- Bulk operations with multi-select (download, move, delete)
- Automatic thumbnail and variant generation
- EXIF data extraction and display
- Duplicate detection via perceptual hashing
- Support for JPEG, PNG, GIF, WebP, AVIF formats
Playlist System
- Create custom playlists from your image library
- Drag-and-drop reordering with visual pairing indicators
- Smart image pairing for landscape photos (automatic stacking)
- Multiple display modes optimized for different devices
- Per-playlist EXIF date display option
- Automatic variant generation for display resolutions
Scheduling System
- Time-based playlist switching (new in v2.0)
- Day-of-week scheduling for different content
- Automatic power on/off for display devices
- Perfect for businesses or themed displays
- Set-and-forget automation
Display Modes
- Default - Smart pairing of landscape images with full-screen portraits
- Ken Burns Plus - Gentle zoom and pan effects (Raspberry Pi safe)
- Soft Glow - Subtle luminosity transitions
- Ambient Pulse - Breathing light effect
- Dreamy Reveal - Elegant fade-in animations
- Stacked Reveal - Synchronized dual-image transitions
Display Device Management
- Simple code-based device registration
- Multi-device support with individual configurations
- Real-time status monitoring and health checks
- Remote browser refresh and playlist assignment
- Automatic resolution detection with variant generation prompts
- Daemon service for reliable display management (new in v2.0)
Advanced Features
- WebSocket-based real-time communication
- Resolution-optimized image variants
- Hardware acceleration support for Raspberry Pi
- Efficient preloading and caching
- RESTful API for programmatic access
Modern Admin Interface
- Clean, responsive design built with React and Tailwind CSS
- Mobile-optimized views and touch interactions
- Drag-and-drop image organization
- Live display status dashboard
- System logs and monitoring
Server Deployment (Docker):
- Ubuntu Server 20.04+ - Fully tested and working
- Linux distributions with Docker support - Expected to work
Display Devices:
- Raspberry Pi with FullPageOS - Fully tested and working
- Firefox browser (desktop) - Fully tested and working
- Chrome browser (desktop) - Fully tested and working
- Chromium-based browsers - Expected to work
- WebKit-based browsers - Expected to work
Server Deployment:
- Windows (Docker Desktop) - May require adjustments
- macOS (Docker Desktop) - May require adjustments
- Non-Ubuntu Linux distributions - Should work but not verified
Note on Windows/macOS: The Docker deployment is designed for Linux servers and may need modifications for Windows or macOS environments. Community contributions for platform-specific configurations are welcome via GitHub issues or pull requests.
Requirements:
- Docker Engine 20.10+
- Docker Compose 2.0+
- Linux server with 2GB+ RAM
- Port 3003 available
Deploy in 2 commands:
curl -O https://raw.githubusercontent.com/nstephens/glowworm/main/quick-start.sh
chmod +x quick-start.sh && ./quick-start.shThe script will:
- Download required Docker files
- Generate secure passwords automatically
- Detect your network interfaces
- Prompt you to configure the network interface in
.env - Start all services (frontend, backend, database)
Access your installation:
- Open browser:
http://YOUR_SERVER_IP:3003 - Complete the setup wizard (set admin password)
- Start uploading photos
Docker Hub Images:
For detailed documentation, please visit the GlowWorm Wiki:
Getting Started
Usage
Display Setup
Advanced
Troubleshooting
We welcome contributions! Please see the Contributing Guide in the wiki for:
- Development setup instructions
- Coding standards
- Testing guidelines
- Pull request process
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- Documentation: GlowWorm Wiki
- Issues: GitHub Issue Tracker
- Questions: Check existing issues or open a new one
Built for digital photo enthusiasts
