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

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

1. Убедитесь, что у вас установлен Docker и Docker Compose.

2. Создайте папку под проект Nextcloud и перейдите в нее:

   mkdir nextcloud
   cd nextcloud

3. Создайте файл docker-compose.yml и откройте его для редактирования:

   touch docker-compose.yml
   nano docker-compose.yml

4. Вставьте следующий код в файл 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" на ваш домен.

5. Сохраните и закройте файл docker-compose.yml.

6. Запустите контейнеры с помощью docker-compose:

   docker-compose up -d

7. Для добавления поддержки формата файла 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

8. Установите ffmpeg в контейнер Nextcloud. Для этого вам потребуется войти в контейнер и выполнить следующую команду:

   docker exec -it nextcloud_app_1 apt-get update && apt-get install -y ffmpeg

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

9. После завершения установки ffmpeg перезапустите контейнер Nextcloud:

   docker-compose restart app

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