Skip to content

Media Viewer

Media Viewer Icon


Media Viewer is a self-hosted web application for browsing, organizing, and viewing your personal media collection. It provides a responsive gallery interface that works seamlessly across desktop and mobile devices, with support for images, videos, and playlists.

Demo

Desktop Interface

Desktop browsing and viewing

Gallery browsing, lightbox viewer, and favorites on desktop

Search functionality

Full-text search with tag filtering

Mobile Experience

Mobile browsing Bulk tagging

Responsive mobile interface with selection mode and bulk tagging

Passkey authentication

Biometric authentication with passkeys

Key Features

  • Gallery Browsing: Navigate your media library with an intuitive grid-based interface
  • Infinite Scroll: Seamlessly browse large libraries with automatic pagination
  • Tagging System: Organize media with custom tags for easy categorization and retrieval
  • Favorites: Mark frequently accessed items for quick access
  • Search: Full-text fuzzy search by name, tag, or file type with suggestions
  • Playlists: Play Windows Media Player (.wpl) playlist files
  • Progressive Web App: Install on mobile devices for a native app experience
  • Responsive Design: Optimized for desktop, tablet, and mobile viewing
  • Video Transcoding: Automatic transcoding for browser compatibility
  • Thumbnail Generation: Fast thumbnail generation with incremental updates

For Users

For Administrators

For Developers

System Requirements

  • Docker and Docker Compose
  • Modern web browser (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)
  • Sufficient storage for media files and thumbnail cache

Production (From Source)

  • Go 1.21 or later
  • FFmpeg (for video transcoding and thumbnail generation)
  • GCC (for SQLite CGO compilation)
  • Modern web browser (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)
  • Sufficient storage for media files and thumbnail cache

Development

  • All production requirements (from source)
  • Node.js 18+ (for frontend tooling: linting, formatting, live reload)
  • Make (optional, for build automation)

Note: Node.js is only required for development. The frontend is static HTML/CSS/JavaScript and does not require a Node.js runtime in production.

Support

For bug reports and feature requests, visit the GitHub Issues page.