Как научить Nextcloud работать с HEIC, MOV и ffmpeg через docker-compose файл?

Для того чтобы научить Nextcloud работать с форматами файлов HEIC, MOV и использовать ffmpeg, необходимо внести несколько изменений в файл docker-compose.yml. Вот подробная инструкция:

  1. Убедитесь, что у вас установлен Docker и Docker Compose.
  1. Создайте папку под проект Nextcloud и перейдите в нее:
   mkdir nextcloud
   cd nextcloud
  1. Создайте файл docker-compose.yml и откройте его для редактирования:
   touch docker-compose.yml
   nano docker-compose.yml
  1. Вставьте следующий код в файл docker-compose.yml:
   version: '3'

   services:
     app:
       image: nextcloud:fpm
       restart: always
       depends_on:
         - db
       volumes:
         - ./nextcloud:/var/www/html
       environment:
         - POSTGRES_DB=nextcloud
         - POSTGRES_USER=nextcloud
         - POSTGRES_PASSWORD=nextcloud
         - NEXTCLOUD_TRUSTED_DOMAINS=your.domain.com
         - NEXTCLOUD_PREVIEW_LIBREOFFICE_PATH=/usr/bin/libreoffice
         - NEXTCLOUD_PREVIEW_ENABLE_LIBREOFFICE=true
         - NEXTCLOUD_ENABLE_PREVIEWS=true
       ports:
         - 8080:80

     db:
       image: postgres:12
       restart: always
       environment:
         - POSTGRES_DB=nextcloud
         - POSTGRES_USER=nextcloud
         - POSTGRES_PASSWORD=nextcloud

Обратите внимание на следующие изменения:

  • В секции services/app/environment добавлены переменные окружения NEXTCLOUD_PREVIEW_ENABLE_LIBREOFFICE=true и NEXTCLOUD_ENABLE_PREVIEWS=true, чтобы включить предварительный просмотр файлов.
  • Добавлены две переменные NEXTCLOUD_PREVIEW_LIBREOFFICE_PATH=/usr/bin/libreoffice и NEXTCLOUD_TRUSTED_DOMAINS=your.domain.com. Замените "your.domain.com" на ваш домен.
  1. Сохраните и закройте файл docker-compose.yml.
  1. Запустите контейнеры с помощью docker-compose:
   docker-compose up -d
  1. Для добавления поддержки формата файла HEIC и MOV в Nextcloud вам потребуется отключить модуль предварительного просмотра и обработки файлов на основе метаданных изображений Exif, так как он может вызывать ошибку импорта файлов HEIC и MOV. Для этого выполнив следующие шаги:
  • Войдите в контейнер Nextcloud:
     docker exec -it nextcloud_app_1 bash
  • Перейдите в папку конфигурации Nextcloud:
     cd /var/www/html/config
  • Измените файл config.php следующим образом:
     nano config.php
  • Добавьте следующие строки в конец файла, перед закрывающей строкой );:
     'enable_previews' => false,
     'enable_previews_implicit_flushing' => false,
  • Сохраните и закройте файл config.php.
  • Перезапустите контейнер Nextcloud:
     exit
     docker-compose up -d
  1. Установите ffmpeg в контейнер Nextcloud. Для этого вам потребуется войти в контейнер и выполнить следующую команду:
   docker exec -it nextcloud_app_1 apt-get update && apt-get install -y ffmpeg

Обратите внимание, что имя контейнера может отличаться в зависимости от вашего проекта Nextcloud.

  1. После завершения установки ffmpeg перезапустите контейнер Nextcloud:
   docker-compose restart app

Теперь Nextcloud должен поддерживать файлы HEIC, MOV и использовать ffmpeg для их обработки и предварительного просмотра.