Skip to content

nstephens/glowworm

Repository files navigation

GlowWorm

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.

Display Demo
[Youtube demo of display device playing a slideshow]

Screenshots

Dashboard Images
Glowworm Dashboard Glowworm Images
Playlists Displays
Glowworm Playlists Glowworm Displays
Settings
Glowworm Settings

End to End Installation and Usage Example

GlowWorm Installation and Usage Demo

Watch the complete walkthrough: GlowWorm Installation and Usage on YouTube

Features

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

Compatibility

Tested Environments

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

Untested Environments

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.


Quick Start

Docker Deployment (Recommended)

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.sh

The script will:

  1. Download required Docker files
  2. Generate secure passwords automatically
  3. Detect your network interfaces
  4. Prompt you to configure the network interface in .env
  5. 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:


Documentation

For detailed documentation, please visit the GlowWorm Wiki:

Getting Started

Usage

Display Setup

Advanced

Troubleshooting


Contributing

We welcome contributions! Please see the Contributing Guide in the wiki for:

  • Development setup instructions
  • Coding standards
  • Testing guidelines
  • Pull request process

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.


Support


Built for digital photo enthusiasts

About

A web-based digital photo display application

Resources

Stars

Watchers

Forks

Packages

No packages published