Содержание

MediaCMS установка в Docker DSM 7.2

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. Следуйте инструкциям на изображении ниже. Примечание : Будьте внимательны и вводите только строчные, а не заглавные буквы.

compose.yaml
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