MCPSERV.CLUB
Chevereto

Chevereto

Self-Hosted

Self‑hosted image and video sharing platform

Active(83)
804stars
0views
Updated 4 days ago
Chevereto screenshot 1
1 / 5

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 FULLTEXT indexes and optional Redis full‑text indexing for performance.
  • Webhooks & Events: Developers can subscribe to events such as media.uploaded, user.registered, or album.created via 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 StorageInterface to 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

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
AGPL-3.0
Stars
804
Technical Specs
Pricing
Open Source
Database
MySQL
Docker
Official
Supported OS
LinuxDocker
Author
chevereto
chevereto
Last Updated
4 days ago