Overview
Discover what makes MediaCMS powerful
MediaCMS is a self‑hosted, full‑stack media content management system engineered for rapid deployment of video and audio portals. Built on a Django + React foundation, it exposes a RESTful API that lets developers programmatically ingest media, manage users, and orchestrate transcoding pipelines. The system is designed to run in containerized environments (Docker) but also supports traditional virtual machine deployments, making it flexible for cloud or on‑premise infrastructure.
Backend
Frontend
Transcoding
Storage
Overview
MediaCMS is a self‑hosted, full‑stack media content management system engineered for rapid deployment of video and audio portals. Built on a Django + React foundation, it exposes a RESTful API that lets developers programmatically ingest media, manage users, and orchestrate transcoding pipelines. The system is designed to run in containerized environments (Docker) but also supports traditional virtual machine deployments, making it flexible for cloud or on‑premise infrastructure.
Technical Stack & Architecture
- Backend: Django (Python) with Celery for asynchronous tasks, Redis as broker/cache, and PostgreSQL for relational persistence. The choice of Django provides a mature ORM, built‑in admin UI, and robust authentication mechanisms.
- Frontend: React coupled with a custom video.js wrapper. The UI is highly modular, allowing developers to replace or extend components without touching the core.
- Transcoding: FFmpeg‑based workers run in separate Docker containers. MediaCMS supports multiple codecs (h264, h265, vp9) and resolutions, with a priority‑based queue that can be scaled horizontally.
- Storage: Local filesystem or S3‑compatible object stores via Django’s
django-storages. Chunked uploads are handled by the frontend, ensuring resumable uploads for large media files.
Core Capabilities
- REST API: Swagger‑documented endpoints for CRUD on media, playlists, categories, and user groups. Authentication is token‑based (JWT) with support for SAML integration.
- Transcription & Subtitles: Whisper runs locally as a Celery worker; subtitle files (SRT, VTT) can be uploaded or generated automatically.
- RBAC & Workflows: Fine‑grained access control with public, private, unlisted, and custom visibility. Group memberships map to roles via SAML or Django’s auth groups.
- Media Types & Metadata: Video, audio, image, PDF support; rich metadata (tags, categories, custom fields) and live search powered by Elasticsearch or Postgres full‑text.
Deployment & Infrastructure
MediaCMS ships with a Docker Compose stack that includes PostgreSQL, Redis, and the web server. For production, developers can spin up multiple worker nodes to handle transcoding or transcription tasks. The system’s configuration is largely driven by environment variables and a settings.yaml, enabling CI/CD pipelines to inject secrets or adjust scaling parameters. The optional remote worker feature allows transcoding jobs to be offloaded to a separate Kubernetes cluster or cloud function.
Integration & Extensibility
- Plugin System: Django’s app architecture lets developers add custom apps for new media types or external services (e.g., DRM providers, analytics dashboards).
- Webhooks: Events such as “media uploaded” or “transcoding finished” can trigger external workflows via configurable webhooks.
- Custom UI: The React app exposes a plugin API; developers can inject custom components or override routes to tailor the user experience.
Developer Experience
The project follows PEP‑8 and React best practices, with comprehensive unit tests and a live demo. Documentation covers API usage, deployment steps, and advanced configuration (e.g., HLS streaming). The community is active on GitHub Issues, and the AGPL‑v3 license ensures that any derivative work remains open source.
Use Cases
- Educational Platforms: Universities can host lecture videos with private access for enrolled students while keeping the codebase open for future extensions.
- Corporate Training: Sensitive training materials can be stored on-premise, leveraging RBAC and SAML for single sign‑on.
- Community Media Hubs: Small media outlets or hobbyist groups can deploy a lightweight portal with auto‑transcoding and social sharing.
Advantages
- Performance: Native Django/Celery stack with optimized FFmpeg pipelines delivers low‑latency transcoding and adaptive HLS streaming.
- Flexibility: The modular architecture lets developers swap storage backends, add new media codecs, or integrate third‑party services without touching core code.
- Licensing: AGPL‑v3 guarantees that improvements remain community‑owned, fostering collaboration while protecting proprietary extensions.
- Scalability: Horizontal scaling of worker containers and support for remote transcoding workers make it suitable from a single server to a distributed cloud deployment.
Open SourceReady to get started?
Join the community and start self-hosting MediaCMS 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
OpenOlitor
Open source CSA & regional agriculture management
MeshCentral
Open source remote device management platform
Chirpy
Privacy‑friendly, customizable comment system for modern websites
Galene
Self-hosted WebRTC videoconferencing server
RERO ILS
Modern open‑source library management for heritage, public and school libraries
URL to PNG
Generate web page screenshots via HTTP API
