Photoview
Simple, user-friendly, and lightweight self-hosted photo gallery with facial recognition.
Why consider Photoview?
Photoview is an open-source, lightweight photo gallery server designed for speed and navigation. It features fast thumbnail generation, facial recognition, and RAW image support.
Learn Photoview by building
Practical setup notes, real use cases, and copy-ready examples in one focused guide.
In this guide10 sections
What is Photoview?
Photoview is a lightweight, high-performance open-source photo and video gallery server written in Go and Vue.js. It operates as a fast, resource-efficient alternative to heavier photo management platforms, emphasizing swift browsing, rapid thumbnail generation, and directory-based album organization.
Photoview scans existing file directory trees non-destructively, generates progressive WebP thumbnails, clusters faces using local machine learning algorithms, and provides smooth, responsive navigation across high-resolution image libraries on low-power devices like Raspberry Pi.
Who Is It For?
- Raspberry Pi & Low-Power Server Owners: Running a responsive photo gallery without high memory consumption or database overhead.
- Directory-First Organizers: Browsing photos according to existing filesystem folder structures without forced database imports.
- Family Homelabbers: Setting up individual user accounts with private or shared albums and password-protected sharing links.
Key Features
- High-speed thumbnail caching using modern WebP formats for fluid photo scrolling.
- Non-destructive folder scanning that respects existing filesystem directory structures.
- Local facial recognition and clustering powered by dlib machine learning libraries.
- Geographic EXIF map view plotting images on interactive world map tiles.
- Support for RAW camera formats (via Darktable) and common video formats (via FFmpeg).
Deploying Photoview with Docker Compose
version: '3'services: db: image: mariadb:10.5 container_name: photoview_db restart: unless-stopped environment: - MYSQL_DATABASE=photoview - MYSQL_USER=photoview - MYSQL_PASSWORD=secure_photoview_pass - MYSQL_ROOT_PASSWORD=root_secure_pass volumes: - ./db_data:/var/lib/mysql photoview: image: viktorstrate/photoview:latest container_name: photoview restart: unless-stopped ports: - "8000:80" environment: - PHOTOVIEW_DATABASE_DRIVER=mysql - PHOTOVIEW_MYSQL_URL=photoview:secure_photoview_pass@tcp(db:3306)/photoview - PHOTOVIEW_LISTEN_PORT=80 volumes: - ./photos_cache:/app/cache - /media/photos:/photos:ro depends_on: - dbStart the container:
docker compose up -dOpen http://localhost:8000 in your browser to complete initial administrator setup and initiate your initial library scan.
Practical Use Cases
1. Lightweight Raspberry Pi Photo Server
A homelabber deploys Photoview on a single-board computer connected to an external USB hard drive, browsing 50,000 photos smoothly without freezing.
2. Read-Only Gallery for Existing NAS Shares
A photographer points Photoview to an existing network share in read-only mode (:ro), generating beautiful web galleries while guaranteeing original raw files cannot be altered.
3. Password-Protected Public Album Sharing
A user shares vacation albums with distant relatives by generating a secure, expiring public web link with full-resolution download permissions.
Troubleshooting and Limitations
- Thumbnail Generation Cache Space: For large photo libraries, allocate several gigabytes of fast SSD storage for
/app/cacheto ensure instantaneous thumbnail rendering. - EXIF Timestamp Accuracy: Ensure camera clocks are synchronized; Photoview groups timeline items strictly based on EXIF capture dates.
Official Resources
- Official Website: https://photoview.217.se
- GitHub Repository: https://github.com/photoview/photoview
- Documentation: https://photoview.217.se/docs/
Related tools
More options with a similar category or technology profile.
MyPaint
Nimble, distraction-free, and easy graphic application for digital painters.
Pencil2D
Easy, intuitive traditional hand-drawn 2D animation software across raster and vector.
Hydrogen
Advanced open-source drum machine and pattern-based step sequencer for audio production.
Pure Data
Open source visual programming language for multimedia, audio, and physical computing.