MCPSERV.CLUB
Zenphoto

Zenphoto

Self-Hosted

Simple media CMS for personal websites

Active(86)
313stars
0views
Updated 9 days ago

Overview

Discover what makes Zenphoto powerful

Zenphoto is a lightweight, PHP‑based content management system (CMS) optimized for multimedia websites. It exposes a unified API surface that handles image, video, and audio assets while offering an optional Zenpage plugin for full‑blown blogging and static page management. From a developer’s standpoint, the core of Zenphoto is a set of well‑structured classes that encapsulate media handling, metadata extraction (EXIF, ID3), and rendering pipelines. The application follows a Model‑View‑Controller pattern where the *model* layer deals with database entities such as `Album`, `Photo`, and `MediaFile`; the *view* layer is theme‑based, using PHP templates that can be overridden or extended; and the *controller* layer orchestrates routing via a single `index.php` front controller that interprets URL parameters and dispatches to the appropriate handler.

Language

Frameworks/Libraries

Database

Web Server

Overview

Zenphoto is a lightweight, PHP‑based content management system (CMS) optimized for multimedia websites. It exposes a unified API surface that handles image, video, and audio assets while offering an optional Zenpage plugin for full‑blown blogging and static page management. From a developer’s standpoint, the core of Zenphoto is a set of well‑structured classes that encapsulate media handling, metadata extraction (EXIF, ID3), and rendering pipelines. The application follows a Model‑View‑Controller pattern where the model layer deals with database entities such as Album, Photo, and MediaFile; the view layer is theme‑based, using PHP templates that can be overridden or extended; and the controller layer orchestrates routing via a single index.php front controller that interprets URL parameters and dispatches to the appropriate handler.

Technical Stack

  • Language: PHP 8.1+ (strict typing, namespaces, and modern OOP features).
  • Frameworks/Libraries: Minimal dependencies; core uses PDO for database abstraction, and the Zend Framework’s Zend\Filter classes for sanitization. Themes are built with standard PHP and optional CSS frameworks (Bootstrap, Tailwind).
  • Database: MySQL/MariaDB is the primary backend; SQLite support is available for lightweight deployments. The schema is normalized with foreign keys linking media files to albums, users, and tags.
  • Web Server: Compatible with Apache (mod_rewrite), Nginx, and PHP‑FPM. The rewrite rules are bundled in .htaccess for Apache or as a sample Nginx block.
  • Other: Optional GD/ImageMagick for image processing, FFmpeg for video transcoding, and optional OpenSSL for secure token generation.

Core Capabilities

  • Media Management API: Exposes CRUD operations for media objects via PHP classes ($photo = new Photo($id); $photo->save();). Developers can hook into the upload pipeline using onUpload callbacks to perform custom validation or thumbnail generation.
  • Metadata Extraction: Automatic extraction of EXIF, IPTC, and ID3 tags during upload. These tags are stored in dedicated tables and can be queried via the API.
  • RESTful Endpoints: A lightweight JSON API (/api/v1/photos) is available for building headless front‑ends or mobile apps. Authentication can be handled via API keys stored in the users table.
  • Plugin System: Zenphoto’s plugin architecture is based on event hooks (add_hook('pre_render', function() { … });). The Zenpage plugin adds full CMS features, while third‑party plugins can extend galleries, add social sharing, or integrate with external services.
  • User & Permission Model: Multi‑user support with granular rights (admin, editor, viewer). Permissions are stored in a role‑based access control table and can be queried programmatically.

Deployment & Infrastructure

Zenphoto is designed for self‑hosting on LAMP or LNMP stacks. It requires PHP extensions such as pdo_mysql, gd, and optionally imagick. The application scales horizontally by sharing a common database instance; however, for high‑traffic sites, developers can deploy read replicas and use caching layers (Redis or Memcached) to offload thumbnail generation. Docker images are available on Docker Hub, simplifying containerized deployments; the official image exposes a single web service that mounts the code and configuration directories. Continuous integration pipelines can be set up to run unit tests (PHPUnit) against the API.

Integration & Extensibility

  • Webhooks: Zenphoto can emit events (e.g., on_media_uploaded) that external services can subscribe to via HTTP callbacks.
  • Theme Customization: Themes are pure PHP/HTML, making it trivial to override template files or inject custom CSS/JS. Developers can also create new themes from scratch.
  • API Extensions: The plugin system allows adding new API endpoints or extending existing ones. For example, a developer can register a GET /api/v1/albums/{id}/media route that returns filtered media.
  • Third‑Party Integrations: Existing plugins provide integration with WordPress, Google Analytics, and social media platforms. Custom integrations can be built by leveraging the plugin hooks.

Developer Experience

Zenphoto’s documentation is organized into sections for installation, configuration, and developer guides. The source repository follows semantic versioning; release notes detail API changes and deprecations. Community support is active on the official forum, with a dedicated bug tracker on GitHub. The codebase follows PSR‑4 autoloading, making IDE navigation straightforward. Tests cover core media handling and API endpoints, ensuring regressions are caught early.

Use Cases

  1. Personal Portfolio – An artist can deploy Zenphoto to showcase high‑resolution images and videos, leveraging the built‑in EXIF extraction for detailed captions.
  2. Event Photography – A photographer can set up time‑limited galleries with password protection, using the API to programmatically create albums per event.
  3. Music Distribution – Musicians can host audio files, embed players, and manage tags for genre or mood via the API.
  4. Educational Resources – Educators can host multimedia lecture notes, allowing students to browse by topic or date through the API.

Advantages

  • Performance: Lightweight core and efficient database queries keep page load times low, even with large media collections.
  • Flexibility: The plugin architecture and event hooks allow developers to tailor the system without modifying core code.
  • **Lic

Open SourceReady to get started?

Join the community and start self-hosting Zenphoto today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
NOASSERTION
Stars
313
Technical Specs
Pricing
Open Source
Supported OS
Linux
Author
zenphoto
zenphoto
Last Updated
9 days ago