MediaCMS — это современная полнофункциональная система управления видео и медиа с открытым исходным кодом. Она разработана для удовлетворения потребностей современных веб-платформ для просмотра и обмена медиа. Ее можно использовать для создания небольшого или среднего видео- и медиапортала за считанные минуты.
Он построен в основном с использованием современного стека Django + React и включает REST API.
Демоверсия доступна по адресу https://demo.mediacms.io
Авторы считают, что существуют потребности в качественных веб-приложениях с открытым исходным кодом, которые можно использовать для создания общественных порталов и поддержки совместной работы.
При создании MediaCMS мы ставим перед собой три цели: а) обеспечить всю функциональность, которую можно ожидать от современной системы, б) обеспечить простоту установки и обслуживания, в) обеспечить простую настройку и добавление функций.
MediaCMS выпускается под лицензией GNU Affero General Public License v3.0. Авторские права: Markos Gogoulos.
Для небольшой или средней установки с несколькими часами видео, загружаемыми ежедневно, и несколькими сотнями активных пользователей, просматривающих контент ежедневно, 4 ГБ ОЗУ / 2-4 ЦП как минимум будет достаточно. Для более крупной установки с многими часами видео, загружаемыми ежедневно, рассмотрите возможность добавления большего количества ЦП и большего количества ОЗУ.
Что касается дискового пространства, подумайте, какими будут потребности. Общее правило — умножить на три размер ожидаемых загруженных видео (поскольку система сохраняет исходные версии, закодированные версии плюс HLS), так что если вы получаете 1G видео ежедневно и сохраняете их все, вам следует рассмотреть диск на 1T на год (1G * 3 * 365).
Это программное обеспечение использует следующий список потрясающих технологий: Python, Django, Django Rest Framework, Celery, PostgreSQL, Redis, Nginx, uWSGI, React, Fine Uploader, video.js, FFMPEG, Bento4
Есть два способа запустить MediaCMS: через Docker Compose и через установку на сервере с помощью скрипта автоматизации, который устанавливает и настраивает все необходимые службы. Найдите соответствующие страницы:
создайте три новые папки внутри папки mediacms, и назовите их db, redis, uploads. Следуйте инструкциям на изображении ниже. Примечание : Будьте внимательны и вводите только строчные, а не заглавные буквы.
services: db: image: postgres:17 container_name: MediaCMS_DB healthcheck: test: ["CMD", "pg_isready", "-q", "-d", "mediacms", "-U", "mediacms"] timeout: 45s interval: 10s retries: 10 environment: POSTGRES_USER: mediacms POSTGRES_PASSWORD: mediacms POSTGRES_DB: mediacms TZ: Europe/Bucharest volumes: - /volume1/docker/mediacms/db:/var/lib/postgresql:rw restart: on-failure:5 migrations: image: mediacms/mediacms:latest container_name: MediaCMS_MIGRATION environment: ENABLE_UWSGI: no ENABLE_NGINX: no ENABLE_CELERY_SHORT: no ENABLE_CELERY_LONG: no ENABLE_CELERY_BEAT: no ADMIN_USER: admin ADMIN_PASSWORD: admin ADMIN_EMAIL: yourown@email command: ./deploy/docker/prestart.sh depends_on: - redis - db restart: on-failure web: image: mediacms/mediacms:latest container_name: MediaCMS_WEB healthcheck: test: timeout 10s bash -c ':> /dev/tcp/127.0.0.1/80' || exit 1 interval: 10s timeout: 5s retries: 3 start_period: 90s deploy: replicas: 1 ports: - 8068:80 environment: ENABLE_CELERY_BEAT: no ENABLE_CELERY_SHORT: no ENABLE_CELERY_LONG: no ENABLE_MIGRATIONS: no depends_on: - migrations volumes: - /volume1/docker/mediacms/uploads:/home/mediacms.io/mediacms/uploads:rw restart: on-failure celery_beat: image: mediacms/mediacms:latest container_name: MediaCMS-BEAT environment: ENABLE_UWSGI: no ENABLE_NGINX: no ENABLE_CELERY_SHORT: no ENABLE_CELERY_LONG: no ENABLE_MIGRATIONS: no depends_on: - redis restart: on-failure celery_worker: image: mediacms/mediacms:latest container_name: MediaCMS-WORKER deploy: replicas: 1 environment: ENABLE_UWSGI: no ENABLE_NGINX: no ENABLE_CELERY_BEAT: no ENABLE_MIGRATIONS: no depends_on: - migrations restart: on-failure redis: image: redis container_name: MediaCMS-REDIS hostname: redis healthcheck: test: ["CMD-SHELL", "redis-cli ping || exit 1"] volumes: - /volume1/docker/mediacms/redis:/data:rw restart: on-failure:5