MCPSERV.CLUB
PhotoPrism

PhotoPrism

Self-Hosted

AI‑powered photo organizer for your private server

Active(100)
38.6kstars
0views
Updated 20 hours ago
PhotoPrism screenshot 1
1 / 5

Overview

Discover what makes PhotoPrism powerful

PhotoPrism is a self‑hosted, AI‑powered photo management platform that emphasizes privacy and decentralization. From a technical standpoint it functions as a full‑stack service: a Go‑based backend that ingests, processes, and indexes media; a PostgreSQL database for metadata; and a Vue.js / Vite front‑end that exposes a progressive web app (PWA) interface. The core engine performs automatic image recognition, facial detection, and geocoding to generate searchable tags, locations, and person labels. The application is designed for low‑overhead deployment on a single server or across multiple nodes, with optional support for Kubernetes or Docker Compose.

Backend

Database

Search Engine

Frontend

Overview

PhotoPrism is a self‑hosted, AI‑powered photo management platform that emphasizes privacy and decentralization. From a technical standpoint it functions as a full‑stack service: a Go‑based backend that ingests, processes, and indexes media; a PostgreSQL database for metadata; and a Vue.js / Vite front‑end that exposes a progressive web app (PWA) interface. The core engine performs automatic image recognition, facial detection, and geocoding to generate searchable tags, locations, and person labels. The application is designed for low‑overhead deployment on a single server or across multiple nodes, with optional support for Kubernetes or Docker Compose.

Architecture

  • Backend: Written in Go, leveraging goroutines for concurrent image processing. The API layer follows RESTful conventions and is versioned to support future extensions.
  • Database: PostgreSQL (or compatible) stores image metadata, labels, and user settings. Indexes on tags, locations, and timestamps enable sub‑second search queries even with millions of photos.
  • Search Engine: Elastic Search or PostgreSQL full‑text search is used for advanced query combinations, while the core Go service handles filtering logic.
  • Frontend: Vue 3 + Vite produces a PWA that runs offline and can be installed on mobile devices. The UI communicates with the backend via JSON over HTTPS, using JWT for authentication.
  • Containerization: A single Docker image contains the Go binary and a minimal OS layer, with volumes for media storage. Compose files expose environment variables for database credentials, upload paths, and optional external services (e.g., S3-compatible storage).

Core Capabilities

  • Automated Tagging: Uses TensorFlow Lite models for object, scene, and face recognition. Labels are stored as searchable facets.
  • Geocoding: Integrates with a privacy‑preserving service to convert GPS metadata into human‑readable place names, supporting six high‑resolution world maps.
  • Live Photo Playback: Detects Live Photos and streams them on hover or slideshow, using HLS fragments served by the backend.
  • API: Exposes CRUD endpoints for albums, labels, and people. Webhooks can be configured to trigger external workflows on events like new photo ingestion or label update.
  • Search Filters: Supports combinatorial queries across tags, colors, resolution, chroma, and quality, with a fluent query language documented in the API reference.

Deployment & Infrastructure

PhotoPrism is optimized for self‑hosting on a range of environments:

  • Single Node: A Raspberry Pi or home NAS can run the service with minimal RAM (2 GB) and CPU, provided the media library is on a fast SSD.
  • Clustered: Docker Swarm or Kubernetes can orchestrate multiple replicas, with a shared PostgreSQL and object storage backend for scalability.
  • Cloud: Vagrant or Terraform templates exist for AWS, GCP, and Azure, allowing deployment behind a reverse proxy (NGINX/Traefik) with TLS termination.
  • Backup: Database dumps and media snapshots can be automated via cron jobs, and the API supports exporting user data in JSON for portability.

Integration & Extensibility

  • Plugins: The architecture allows community‑written Go plugins that hook into the ingestion pipeline (e.g., custom OCR, additional ML models).
  • Webhooks: Developers can subscribe to events such as photo.uploaded or label.created, enabling integrations with home automation, chat bots, or analytics services.
  • Custom Frontend: Since the API is open, developers can build alternative UIs (React, Flutter) that consume the same endpoints.
  • External Storage: Supports S3‑compatible object stores, making it easy to offload media while keeping metadata in PostgreSQL.

Developer Experience

The project ships with comprehensive documentation: architecture diagrams, API reference, and a developer guide that covers extending the ingestion pipeline. The community is active on GitHub Discussions and Gitter, providing rapid support for feature requests or bug reports. Licensing under AGPL 3.0 ensures that any derivative work remains open, encouraging contributions and fostering a transparent ecosystem.

Use Cases

  • Personal Photo Vault: Home users who need a private, self‑hosted gallery with AI tagging and offline PWA access.
  • Enterprise Asset Management: Companies that require secure photo storage with searchable metadata, integrated into existing Kubernetes clusters.
  • IoT Integration: Smart home setups where cameras upload directly to PhotoPrism, triggering facial recognition alerts or automated photo backups.
  • Developer Testbeds: Researchers building on top of the API to experiment with new ML models or custom tagging workflows.

Advantages

  • Performance: Go’s concurrency model and PostgreSQL indexing deliver fast search even at scale.
  • Privacy‑First: No external data sharing; all processing occurs locally unless explicitly configured to use cloud services.
  • Extensibility: Open API, plugin hooks, and support for multiple storage backends make it adaptable to diverse environments.
  • Community & Licensing: AGPL guarantees that improvements remain open, and the active community ensures rapid iteration.

In summary, PhotoPrism offers developers a robust, privacy‑centric photo management platform that can be integrated into existing infrastructures or used as a standalone service. Its modular architecture, open APIs, and scalable deployment options make it an attractive choice for anyone needing a self‑hosted solution with advanced AI capabilities.

Open SourceReady to get started?

Join the community and start self-hosting PhotoPrism today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
other
License
NOASSERTION
Stars
38.6k
Technical Specs
Pricing
Open Source
Database
PostgreSQL
Docker
Official
Min RAM
1GB
Min Storage
5GB
Supported OS
LinuxDocker
Author
photoprism
photoprism
Last Updated
20 hours ago