Overview
Discover what makes Chevereto powerful
Chevereto is a self‑hosted media sharing platform written primarily in PHP 8+ that exposes a rich REST‑like API for programmatic control. At its core, it manages images and videos through a relational database (MySQL/MariaDB) while optionally leveraging Redis for caching, queueing, and session storage. The application follows a modular MVC architecture with a thin bootstrap layer that delegates request routing to `index.php`, which then hands off to the Chevereto kernel. The kernel resolves routes, loads configuration, and instantiates service containers that provide access to database adapters, storage handlers, and third‑party integrations. This design allows developers to inject custom services or replace default components (e.g., swap MySQL for PostgreSQL with minimal effort) without touching the core codebase.
Language
Framework
Database
Caching & Queues
Overview
Chevereto is a self‑hosted media sharing platform written primarily in PHP 8+ that exposes a rich REST‑like API for programmatic control. At its core, it manages images and videos through a relational database (MySQL/MariaDB) while optionally leveraging Redis for caching, queueing, and session storage. The application follows a modular MVC architecture with a thin bootstrap layer that delegates request routing to index.php, which then hands off to the Chevereto kernel. The kernel resolves routes, loads configuration, and instantiates service containers that provide access to database adapters, storage handlers, and third‑party integrations. This design allows developers to inject custom services or replace default components (e.g., swap MySQL for PostgreSQL with minimal effort) without touching the core codebase.
Architecture & Technical Stack
- Language: PHP 8+, using modern features such as namespaces, type hints, and autoloading via Composer.
- Framework: A lightweight custom framework built on top of Symfony components (Routing, HttpFoundation, DependencyInjection).
- Database: MySQL/MariaDB is the primary persistence layer; all media metadata, user accounts, and settings are stored in normalized tables.
- Caching & Queues: Optional Redis integration for opcode caching, session storage, and background job queues (e.g., image transcoding).
- Storage: Filesystem‑based by default, with support for Amazon S3, Google Cloud Storage, and other cloud providers through a pluggable storage driver interface.
- Frontend: Responsive Vue.js SPA for the admin dashboard and public galleries, communicating with the backend via JSON endpoints.
The modularity extends to theme handling: themes are PHP/HTML/CSS bundles that override default views, allowing full control over the user interface without modifying core files.
Core Capabilities & APIs
Chevereto exposes a comprehensive set of endpoints:
- Media CRUD: Upload, retrieve, update, and delete images/videos with automatic resizing, thumbnail generation, and format conversion.
- User & Permission Management: Role‑based access control (admin, moderator, user) with granular privacy settings for each media item.
- Collections: Albums, categories, and tags are first‑class entities; APIs allow bulk operations and nested hierarchies.
- Search & Filtering: Full‑text search powered by MySQL’s
FULLTEXTindexes and optional Redis full‑text indexing for performance. - Webhooks & Events: Developers can subscribe to events such as
media.uploaded,user.registered, oralbum.createdvia a simple webhook dispatcher.
The API is documented with OpenAPI/Swagger, enabling auto‑generated SDKs in multiple languages. Authentication uses JWT or session cookies, and the platform supports OAuth2 for third‑party integrations.
Deployment & Infrastructure
Chevereto is intentionally lightweight, requiring only a LAMP/LEMP stack. For production deployments:
- Docker: Official multi‑arch images (
x86_64,arm64) are available, with a Docker Compose file that spins up the web server, MySQL, and optional Redis. - VPS: Guides cover DigitalOcean, Linode, Vultr, and other providers; the system can run on modest hardware (512 MB RAM, 1 CPU) for low‑traffic sites.
- Scalability: Horizontal scaling is achieved by sharing the database and storage layer across multiple web instances. Redis can be clustered for high‑availability queues, while a CDN (Cloudflare, Fastly) offloads static assets.
Chevereto’s architecture allows zero‑downtime deployments: configuration changes are read from a single config.php file, and the application can be reloaded without clearing caches.
Integration & Extensibility
The plugin system is based on Composer autoloaders; developers can create packages that hook into lifecycle events, extend API endpoints, or replace core services. Themes and plugins can be versioned independently, enabling rapid iteration. The platform also supports:
- Custom Storage Drivers: Implement the
StorageInterfaceto integrate with niche storage backends. - Webhook Hooks: Register callbacks for specific events; useful for syncing with external analytics or moderation services.
- API Extensions: Add new endpoints by creating controller classes that inherit from the base API controller, ensuring consistent authentication and error handling.
Developer Experience
Chevereto’s documentation is organized around a comprehensive set of guides, each linked directly from the homepage. The API docs are auto‑generated and include example payloads. Community support is active through a Discord server, forum, and GitHub issues; contributors can submit PRs to extend functionality or fix bugs. The codebase follows PSR‑12 coding standards, making it familiar to PHP developers accustomed to Symfony or Laravel ecosystems.
Use Cases
- Enterprise Media Portals: Companies needing an internal image/video repository with fine‑grained access controls.
- Creative Communities: Photographers or artists who want a customizable gallery without relying on third‑party hosting.
- Educational Platforms: Schools or universities that require a self‑hosted repository for course materials, with optional grading integration.
- Backup & Archiving: Organizations that need to archive media assets locally while providing public or private access.
Advantages
Chevereto offers a blend of performance, flexibility, and licensing that differentiates it from
Open SourceReady to get started?
Join the community and start self-hosting Chevereto today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps

Psono
Secure, self‑hosted password manager for teams
OnionShare
Secure, anonymous file sharing via Tor
Hubleys
Customizable self‑hosted dashboard for multiple users
Bagisto
Open‑source Laravel eCommerce for marketplaces and omni‑channel sales
Fasten
Securely aggregate your health data into a personal record
Gramps Web
Collaborative genealogy web platform
