Персональное облако


    Облачное хранилище позволяет не только хранить данные, но и обеспечивать совместную работу с ними в NAS.


    Возможные решения


    Существует несколько вариантов облачных сервисов: NextCloud, Seafile, Pydio и т.д…
    Ниже рассмотрена часть из них.


    Реализации облачных сервисов.

    OwnCloud



    Реализован на PHP/Javascript.


    Возможности:


    • Возможно расширять функционал, устанавливая приложения из репозитория облака.
    • Есть интеграция с офисом Collabora и OnlyOffice.
    • Возможно использовать существующие хранилища, такие как FTP, Swift, S3, Dropbox и т.п.,
      распределяя данные между ними и локальным облаком.
    • Шифрование на клиенте.
    • Возможность предоставлять файлы внешним пользователям по e-mail.
    • Есть автоматизация операций с файлами (например, автоматическое добавление тэгов).
    • LDAP.
    • Есть аудио плеер, музыкальная коллекция, галерея плагин чтения PDF.
    • Интеграция с Zimbra.
    • Есть календари, списки задач, текстовые редакторы и т.п.
    • Антивирус и защита от ransomware.
    • Двуфакторная аутентификация.
    • Возможность имперсонации под другого пользователя (с целью отладки).

    NextCloud



    Форк OwnCloud. Реализован на PHP/Javascript.


    Возможности:


    • Хранение файлов с использованием обычных структур каталогов, или с использованием WebDAV.
    • Есть NextCloud Talk, через который возможно делать видеозвонки и видеоконференции.
    • Синхронизация между клиентами под управлением Windows (Windows XP, Vista, 7 и 8), Mac OS X (10.6 и новее) или Linux.
    • Синхронизация с мобильными устройствами.
    • Календарь (также как CalDAV).
    • Планировщик задач.
    • Адресная книга (также как CardDAV).
    • Потоковое мультимедиа (используется Ampache).
    • Поддерживает разные провайдеры авторизации: LDAP, OpenID, Shibboleth.
    • Двуфакторная авторизация.
    • Разделение контента между группами или используя публичные URL. Тонкая настройка правил.
    • Онлайн текстовый редактор с подсветкой синтаксиса и сворачиванием. Анонсирована поддержка онлайн-версий редакторов LibreOffice.
    • Закладки.
    • Механизм сокращения URL.
    • Фотогалерея.
    • Просмотрщик PDF (используется PDF.js)
    • Интеграция с Collabora и OnlyOffice.
    • Модуль логирования.
    • Возможность создания свои Web-сайтов (на PicoCMS).
    • Интеграция с Outlook и Thunderbird.
    • Интеграция клиента в Gnome.
    • Возможность использовать внешнее хранилище.
    • Полнотекстовый поиск.
    • Интеграция с антивирусом.

    SparkleShare


    Реализован на C#.


    Возможности:


    • Версионирование.
    • Шифрование на клиенте.
    • Прозрачная синхронизация между несколькими пользователями: удалённые изменения появятся в локальном каталоге, выделенном для SparkleShare.

    Особенности:


    • Использует git, как бэкэнд.

    Seafile



    Реализован на C/Javascript.


    Возможности:


    • Файлы могут быть организованы в библиотеки, которые могут быть синхронизированы между устройствами.
    • Есть клиент, позволяющий создать локальный "диск", отображённый на облако.
    • Встроенное шифрование. Все файлы шифруются клиентом и хранятся в облаке зашифрованными.
    • Поддержка мобильных устройств.
    • HTTS/TLS шифрование.
    • Есть LDAP.
    • Тонкая настройка прав.
    • Версионирование файлов.
    • Возможность создания снимка каталога, к которому потом возможно вернуться.
    • Дедупликация.
    • Поддержка блокировки файлов.
    • Совместное редактирование файлов онлайн.
    • Антивирус.
    • Тонкая настройка прав.
    • Периодический бэкап через rsync.
    • WebDAV.
    • REST API.
    • Возможность интеграции с Collabora.

    Особенности:


    • Быстрый и нетребовательный к ресурсам.
    • Считается надёжным.
    • Установка прав на подкаталоги поддерживается только в платной Pro версии.
    • Интеграция с антивирусом — только в Pro версии.
    • Аудит — только в Pro версии.
    • Полнотекстовый поиск — только в Pro версии.
    • Интеграция с S3 и Ceph — только в Pro версии.
    • Онлайн просмотр Doc/PPT/Excel — только в Pro версии.

    Pydio



    Реализован на PHP/Javascript.


    Возможности:


    • Обмен файлами не только между пользователями, но и между несколькими экземплярами Pydio.
    • SSL/TLS шифрование.
    • WebDAV.
    • Возможность создать несколько рабочих пространств.
    • Обмен файлами с внешними пользователями, с тонкой настройкой обмена (например, прямые ссылки, пароль и т.п.).
    • Встроен офис Collabora.
    • Предосмотр и редактирование изображений.
    • Есть встроенный аудио и видео проигрыватель.

    ProjectSend



    Реализован на PHP/Javascript.


    Возможности:


    • Возможно расшаривать файлы, как между конкретными пользователями, так и между группами.
    • Полный отчёт по операциям с файлами.
    • Возможность внешним пользователям загружать файлы (с целью обмена, например прикладывать баг-репорты).

    SpiderOak



    Возможности:


    • Экономия места в хранилище и времени выгрузки файлов за счёт дедупликации и внесения изменений в уже имеющиеся файлы (вместо перезаписи файлов целиком).
    • Настраиваемая мультиплатформенная синхронизация.
      DropBox для синхронизации создаёт специальную папку, в которую надо помещать все синхронизируемые файлы. SpiderOak может работать с любым каталогом.
    • Сохранение всех хронологических версий файлов и удаленных файлов
    • Совместное использование папок при помощи так называемых ShareRooms, на которые устанавливается пароль.
      Файлы, обновлённые на локальном компьютере, автоматически обновляются в хранилище. Пользователи извещаются об изменениях по RSS.
    • Получение файлов с любого подключенного к Интернету устройства.
    • Полное шифрование данных по принципу «нулевого знания».
    • Поддержка неограниченного количества устройств.
    • Шифрование данных на стороне клиента.
    • Двуфакторная аутентификация.

    Особенности:


    Закрытая проприетарная система.


    С учётом того, что данное ПО платное и частично закрытое, его использование исключается.


    Установка NextCloud


    Изначально было желание использовать Seafile: серверная часть реализована на C, он эффективен и стабилен. Но выяснилось, что в бесплатной версии есть далеко не всё.


    Потому, я попробовал Nextcloud и остался доволен. Он предоставляет больше возможностей и полностью бесплатен.


    Посмотреть, как он работает в демо-режиме вы можете здесь.


    Вот общие точки сопряжения между облачным хранилищем и системой:


    • /tank0/apps/cloud/nextcloud — хранилище облачного сервиса.
    • /tank0/apps/onlyoffice — данные офиса.
    • https://cloud.NAS.cloudns.cc — WEB интерфейс облачного сервиса.

    Т.к. конфигурация NextCloud достаточно объёмна и состоит из нескольких файлов, я не буду приводить их здесь.


    Всё, что нужно вы найдёте в репозитории на Github.


    Там же доступна конфигурация для SeaFile.


    Сначала установите и запустите NextCloud.


    Для этого надо скопировать конфигурацию в каталог /tank0/docker/services/nextcloud и выполнить:


    # docker-compose up -d

    Будет собран новый образ на основе Nextcloud 13.0.7. Если вы хотите изменить версию базового образа, сделайте это в app/Dockerfile. Я использую версию 15, но стоит заметить, что в ней не работают многие плагины, такие как загрузчик ocDownloader и заметки, а также я ещё не восстановил работоспособность OnlyOffice.


    Кардинальных отличий или сильного улучшения производительности я не заметил.


    Ниже я считаю, что вы используете версию 13+.


    Далее, зайдите в NextCloud и выбрав в меню справа вверху "Приложения", выполните установку необходимых плагинов.


    Приложения


    Потребуются обязательно:


    • LDAP user and group backend — сопряжение с LDAP.
    • External Storage Support — поддержка внешних хранилищ. Нужна будет далее, с целью интеграции NextCloud и общих файлов, а также сопряжения с внешними облачными хранилищами. Про настройку внешних хранилищ я расскажу в другой статье.
    • ocDownloader — загрузчик файлов. Расширяет функциональность облака. Docker образ специально пересобран так, чтобы он работал.
    • ONLYOFFICE — интеграция с офисом. Без этого приложения, файлы документов не будут открываться в облаке.
    • End-to-End Encryption — сквозное шифрование на клиенте. Если облако используют несколько пользователей, плагин необходим, чтобы удобно обеспечить безопасность их файлов.

    Желательные приложения:


    • Brute-force settings — защита от подбора учётных данных. NextCloud смотрит в Интернет, потому лучше установить.
    • Impersonate — позволяет администратору заходить под другими пользователями. Полезно для отладки и устранения проблем.
    • Talk — видеочат.
    • Calendar — говорит сам за себя, позволяет вести календари в облаке.
    • File Access Control — позволяет запрещать доступ к файлам и каталогам пользователям на основе тэгов и правил.
    • Checksum — позволяет вычислять и просматривать контрольные суммы файлов.
    • External sites — создаёт ссылки на произвольные сайты на панельке вверху.

    Особенности контейнера:


    • Установлен загрузчик Aria2.
    • Установлен загрузчик Youtube-DL.
    • Установлены inotify-tools.
    • Увеличены лимиты памяти для PHP.
    • Web-сервер настроен под лучшую работу с LDAP.

    Замечу, что если вы установите версию 13+, но потом решите обновиться на версию 15, это и многое другое вы сможете сделать с помощью утилиты occ.


    LDAP


    Настройка LDAP не тривиальна, потому я расскажу подробнее.


    Зайдите в "Настройки->Интеграция с LDAP/AD".
    Добавьте сервер 172.21.0.1 с портом 389.
    Логин: cn=admin,dc=nas,dc=nas.
    NextCloud может управлять пользователями в базе LDAP и для этого ему потребуется администратор.



    Нажимайте кнопку "Проверить конфигурацию DN" и, если индикатор проверки зелёный, кнопку "Далее".


    Каждый пользователь имеет атрибут inetOrgPerson и состоит в группе users_cloud.


    Фильтр будет выглядеть так:


    (&(|(objectclass=inetOrgPerson))(|(memberof=cn=users_cloud,ou=groups,dc=nas,dc=nas)))

    Нажимайте "Проверить базу настроек и пересчитать пользователей", и если всё корректно, должно быть выведено количество пользователей. Нажимайте "Далее".


    На следующей странице будет настроен фильтр пользователей, по которому NextCloud их будет искать.


    Фильтр:


    (&(objectclass=inetOrgPerson)(uid=%uid))

    На этой странице надо ввести логин какого-либо пользователя и нажать "Проверить настройки".
    Последний раз "Далее".


    Тут нажмите "Дополнительно" и проверьте, что поле "База дерева групп" равно полю "База дерева пользователей" и имеет значение dc=nas,dc=nas.


    Вернитесь в группы и установите в поле "Только эти классы объектов" галочку напротив groupOfUniqueNames.


    Итоговый фильтр здесь такой:


    (&(|(objectclass=groupOfUniqueNames)))

    Поле "Только из этих групп" я не устанавливал, т.к. хочу увидеть в интерфейсе NextCloud всех пользователей, а те кто не входит в группу users_cloud, отсеиваются фильтром на предыдущем этапе.


    OnlyOffice



    OnlyOffice — это прекрасный кроссплатформенный офисный пакет, который поддерживает работу с документами MS Office. Он бесплатный и открытый, также как и LibreOffice и также способен работать, как сервер.


    Но при этом, поддержка оригинального формата у него реализована гораздо лучше, почти как в оригинальном офисе от MS, он более стабилен, имеет более продуманный интерфейс.


    Также он из коробки интегрируется с NextCloud.


    Кстати, есть и Desktop версия OnlyOffice, в том числе под Linux. В общем, намучавшись с тяжёлой и нестабильной Collabora (это LibreOffice), я выбрал OnlyOffice и пока вполне доволен.


    Конфигурация OnlyOffice доступна на Github и ниже, под спойлером.


    На Github есть конфигурация и для Collabora.


    /tank0/docker/services/office/onlyoffice/docker-compose.yml
    version: '2'
    
    # https://helpcenter.onlyoffice.com/ru/server/docker/document/docker-installation.aspx
    
    networks:
      onlyoffice:
        driver: 'bridge'
      docker0:
        external:
          name: docker0
    
    services:
      onlyoffice-redis:
        container_name: onlyoffice-redis
        image: redis
        restart: always
        networks:
          - onlyoffice
        expose:
          - '6379'
    
      onlyoffice-rabbitmq:
        container_name: onlyoffice-rabbitmq
        image: rabbitmq
        restart: always
        networks:
          - onlyoffice
        expose:
          - '5672'
    
      onlyoffice-postgresql:
        container_name: onlyoffice-postgresql
        image: postgres
        environment:
          - POSTGRES_DB=onlyoffice
          - POSTGRES_USER=onlyoffice
        networks:
          - onlyoffice
        restart: always
        expose:
          - '5432'
        volumes:
          - /tank0/apps/onlyoffice/postgresql_data:/var/lib/postgresql
    
      onlyoffice-documentserver-data:
        container_name: onlyoffice-documentserver-data
        image: onlyoffice/documentserver:latest
        environment:
          - ONLYOFFICE_DATA_CONTAINER=true
          - POSTGRESQL_SERVER_HOST=onlyoffice-postgresql
          - POSTGRESQL_SERVER_PORT=5432
          - POSTGRESQL_SERVER_DB_NAME=onlyoffice
          - POSTGRESQL_SERVER_USER=onlyoffice
          - RABBITMQ_SERVER_URL=amqp://guest:guest@onlyoffice-rabbitmq
          - REDIS_SERVER_HOST=onlyoffice-redis
          - REDIS_SERVER_PORT=6379
        stdin_open: true
        restart: always
        networks:
          - onlyoffice
        volumes:
           - /tank0/apps/onlyoffice/document-server-data/data:/var/www/onlyoffice/Data
           - /tank0/apps/onlyoffice/document-server-data/logs:/var/log/onlyoffice
           - /tank0/apps/onlyoffice/document-server-data/cache:/var/lib/onlyoffice/documentserver/App_Data/cache/files
           - /tank0/apps/onlyoffice/document-server-data/files:/var/www/onlyoffice/documentserver-example/public/files
           - /usr/share/fonts
    
      onlyoffice-documentserver:
        image: onlyoffice/documentserver:latest
        depends_on:
          - onlyoffice-postgresql
          - onlyoffice-redis
          - onlyoffice-rabbitmq
          - onlyoffice-documentserver-data
        environment:
          - ONLYOFFICE_DATA_CONTAINER_HOST=onlyoffice-documentserver-data
          - BALANCE=uri depth 3
          - EXCLUDE_PORTS=443
          - HTTP_CHECK=GET /healthcheck
          - EXTRA_SETTINGS=http-check expect string true
          - JWT_ENABLED=true
          - JWT_SECRET=<JWT_SECRET_TOKEN>
          # Uncomment the string below to redirect HTTP request to HTTPS request.
          #- FORCE_SSL=true
          - VIRTUAL_HOST=office.*
          - VIRTUAL_PORT=80
          - VIRTUAL_PROTO=http
          - CERT_NAME=NAS.cloudns.cc
        stdin_open: true
        restart: always
        networks:
          - onlyoffice
          - docker0
        expose:
          - '80'
        volumes:
          - /tank0/apps/onlyoffice/document-server/logs:/var/log/onlyoffice
          - /tank0/apps/onlyoffice/document-server/data:/var/www/onlyoffice/Data
          - /tank0/apps/onlyoffice/document-server/lib:/var/lib/onlyoffice
          - /tank0/apps/onlyoffice/document-server/db:/var/lib/postgresql
        volumes_from:
          - onlyoffice-documentserver-data

    Поясню некоторые моменты:


    • Вам надо изменить <JWT_SECRET_TOKEN> на свой, также как и NAS на имя своей DNS зоны.
    • HTTPS здесь не требуется включать, потому что хотя офис и виден снаружи, обмен с ним идёт через обратный прокси, который работает с пользователем исключительно по HTTPS. Так построена архитектура NAS.

    Теперь надо поднять офис:


    docker-compose up -d

    И, если всё работает, по адресу office.NAS.cloudns.cc будет следующая страница:


    Экран сервера OnlyOffice


    Затем, в настройках NextCloud требуется выбрать Пункт "Администрирование->ONLYOFFICE" и прописать в первых двух полях адрес сервера документов: https://office.NAS.cloudns.cc/ и ваш JWT token.


    В третьем поле надо прописать адрес облака.


    JWT токен возможно сгенерировать, например здесь.


    Если сервер настроен правильно, в меню создания документов облака появятся дополнительные пункты для офисных документов, а .docx файлы будут открывать в офисе.


    Выводы


    Облачное хранилище является центральным звеном для взаимодействия пользователей между собой и другими сервисами.


    В этой роли NextCloud весьма удобен и обладает широким функционалом.


    У него есть свои в процессе обновления между версиями, но в целом, это хранилище возможно рекомендовать.

    Поделиться публикацией

    Комментарии 54

      +2
      Есть ли хоть у чего-то из вышеперечисленного работа с мобильными платформами iOS и Андроид?
        0

        Конечно. Наверняка у большинства, хотя я на это и не обращал внимания, т.к. мне не особенно требуется. Как минимум, у NextCloud, OwnCloud и SeaFile.

          +1
          У Nextcloud есть андроид клиент. Работу оценю где то на 3.5-4 балла.
          Добавлю немного от себя про Nextcloud:
          + Файлы хранятся в нативной линуксовой FS. В seafile — в своем каком то блочном формате. Я для себя решил что возможность восстановления информации в случае чего, для меня важнее чем плюшки производительности проприетарной seafile, по этому как и автор, выбрал Nextcloud. Да, в результате дома поселился мини сервак на десктопной платформе (mini ATX), при этом, сейчас я могу подключить 4 диска 3,5" и два m.2. т.е., для домашнего сервера(в отличие от intel NUC) я имею неплохо масштабируемую систему.
          -Минус как мне кажется один: Надо быть «немножечко» Linux админом.
            0
            Файлы хранятся в нативной линуксовой FS.

            Да, но могут быть зашифрованы, при включении шифрования на сервере (не говоря уже о сквозном), хотя структура каталогов при этом всё-равно сохраняется.


            -Минус как мне кажется один: Надо быть «немножечко» Linux админом.

            Seafile тоже этого не отменяет.

          +3

          Мой инстанс Nextcloud в docker-compose успешно пережил апгрейд до версии 15, однако и заметки, и OnlyOffice работают как ни в чём не бывало.


          Для заметок имеет смысл использовать QOwnNotes, который умеет интеграцию с nextcloud и git, а еще способен (через скрипт, который ставится из его собственного репозитория) шифровать-дешифровывать заметки pgp ключом одним кликом мыши.

            +1
            Про OnlyOffice пока не скажу, я просто ещё не разбирался, что там сломалось при обновлении, а вот заметки слетели потому, что плагин QuickNotes не поддерживается в 15 версии.
            Про QOwnNotes учту. Спасибо.
              0
              Для заметок лучше использовать standardnotes.org (со своим сервером синхронизации и web-аппом).
                0

                По сравнению с чем и почему лучше?

                  +1
                  По сравнению со всем.
                  Заметки должны быть кроссплатформенными и (желательно) полностью self-hosted, с оффлайн-работой и синхронизацией в фоне. У SN всё это есть.

                  QOwnNotes — это всё же, скорее, про ведение личной вики или вроде того. При этом на андроиде (в nextcloud notes, например) теряется часть фич. В SN (так как клиенты все «свои») такого не происходит.
                    0
                    Ну, если используется онлайновый сервис (в том числе свой), не обязательна кросс-платформенность и наличие клиента.
                    Но ok, посмотрю в эту сторону. Заметками я пока серьёзно не занимался, всё ограничилось установкой плагина в NextCloud.
                      +1
                      > не обязательна кросс-платформенность и наличие клиента.
                      Мобильные браузеры пока не доросли =)
                      Приложенька у SN намного удобнее вебморды на телефоне (впрочем, по мне она так удобнее любых других заметочников под андроид, кроме разве что blackberry notes под BB10).

                      Но это именно «заметочник» — text-only (по крайней мере, в бесплатной версии). Что забавно — бывает и платная self-hosted версия, там появляются файлы, аттачи и тд.
                  0
                  С ним есть как плюсы так и большие проблемы:
                  • мало мальски крупная заметка — открывается на андроиде (на Samsung Galaxy Note 9(!) — с заметной задержкой (а с некоторыми из редакторов — не открывается вообще). Если заметок хотя бы несколько сотен — при открытии списка лаги. Что же будет на более слабых андроид-девайсах?
                  • Поиск внутри заметки — базовая вещь но есть только в одном из редакторов (Minimal Markdown)
                  • масс-операций в принципе нет (вот тестирую я импорт из Evernote и надо стереть заметки — удалять только по одной)(ну да — по их манифесту подразумевается что это 3rd-party разработчики видимо будут делать)

                  Но да — зато все открыто и в исходниках, и видно что автор очень серьезно озаботился и безопасностью и вопросом а как сделать чтобы проект существовал — долго.
                    0
                    > с заметной задержкой
                    Это последствия шифрования, кстати. Если не регаться и использовать offline-версию — то работает намного быстрее. Но я просто не пишу длинных заметок, а ~10k символов на K1 открываются быстро.

                    > Поиск внутри заметки
                    Внезапно обнаружил, что его действительно нет =) Не обращал внимания. В браузере ^f работает, а на телефоне не пригождалось.

                    > надо стереть заметки — удалять только по одной
                    Вот как раз удаление есть массовое.
                    Extensions в вебе -> batch manager -> выделить заметки, появляется кнопка удалить. С другой стороны, бесплатно больше ничего в extensions не положили =)

                    > чтобы проект существовал — долго
                    На самом деле тут даже неважно, что проект долго просуществует, тут важнее то, что self-hosted просуществует ровно столько, сколько он нужен будет.
                    А то меня эти закрытия тудушников и заметочников за жизнь утомили уже, честно говоря.
                      0
                      Вот как раз удаление есть массовое.
                      Extensions в вебе -> batch manager -> выделить заметки, появляется кнопка удалить. С другой стороны, бесплатно больше ничего в extensions не положили =)

                      Мне чтобы это узнать — пришлось специально дергать поддержку.

                      > с заметной задержкой
                      Это последствия шифрования, кстати. Если не регаться и использовать offline-версию — то работает намного быстрее. Но я просто не пишу длинных заметок, а ~10k символов на K1 открываются быстро.

                      Оффлайн совсем не вариант для меня.
                      А 10к это мало для меня. (в ответ на мой вопрос почему бекап в OneDrive вылетает -мне было сказано что у меня вообще рекорд по объему… а это был минимальный набор тестовых данных).
                      По сути SN _мне_ разве что заменой Google Keep может послужить. Но не Evernote (да — Evernote у меня в некоторых случаях — лагает (ну не любит текстовые заметки в мегабайты даже на маке а не андроиде, действительно много заметок — тоже не любит), хотя пофиксили в последние годы.

                      > чтобы проект существовал — долго
                      На самом деле тут даже неважно, что проект долго просуществует, тут важнее то, что self-hosted просуществует ровно столько, сколько он нужен будет.
                      А то меня эти закрытия тудушников и заметочников за жизнь утомили уже, честно говоря.

                      NoteStation / DSNote от Synology — закрыть — точно не закроют. Но — НЕ OpenSource. +Есть риск остаться без обновлений DSM + нужно либо их железо либо неофициальный путь. См ниже -:). Ну и один из недостатков — вот такое у меня впечатление, подтвержденное тестами что больше 2 Mb заметка — ломает поиск в андроид клиенте DS Note (баг они признали в итоге), в других местах — нормально.

                      А так — да Confluence (все равно лицензия идет с исходниками, любая лицензия включая минимальную), ну да это вики — но как некий минимальный заметочник — подойдет. И с мобильного тоже. Правда ресурсов кушает… много (хотя возможно я ее готовить не умею).
                0
                Не совсем FairPlay, но через кастомный загрузчик, можно на свое железо установить Synology DSM с довольно богатым софтовым функционалом, при этом простой и понятный интерфейс даже для обычного юзера(естественно, через консоль или docker вообще что угодно сделать/запустить можно). Один только аналог dropbox из коробки с клиентами под Win/Mac/Linux/iOS/Android заслуживает отдельного плюса.
                Существенный минус только один — поддержку чужого железа(изначально операционка работает только на NAS-ах Synology) делают энтузиасты через кастомные загрузчики.
                  0

                  Но зачем?
                  Вопрос про то, надо ли это использовать уже был. И я понял, что от "специально обученных" дистрибутивов лучше уйти к системе общего назначения, плюс специфичные дополнения (в данном случае — это OMV).

                    0
                    Так OMV такая же специально обученная система, вопрос больше в том, кому что нравится, ну + сила привычки со старых времен, когда той же OMV еще даже не было.
                      0
                      Ну как сказать. OMV, в основном, не ограничения накладывает, а добавляет возможности. А в основе я имею полноценный Debian, на который ставлю OMV пакетом.
                  +1
                  Если говорить только о хранении данных почему бы не использовать Resilio Sync (ранее BitTorrent Sync) или Syncthing.
                  На мой взгляд куда более практичное и универсальное решение если надо зеркалировать одни и те же данные на несколько компьютеров, можно и без отдельного сервера, так же Resilio Sync пробивает провайдерский NAT без всяких лишних телодвижений. В общем одни сплошные плюсы мне видятся
                    0
                    Я смотрел в их сторону и, прежде всего, это системы для синхронизации. BTSync (тот, который Resilio) вообще закрытый и платный с урезанной Free версией. Да и «пробивать NAT» мне не требуется, это уже обсуждалось.

                    Syncthing — действительно неплохая штука. Но всё-таки, её применимость в случае наличия централизованного сервера, несколько сомнительна (а цикл статей именно этому посвящён).

                    Общая же проблема в том, что такой вид зеркалирования во-первых не даёт гарантий, что данные будут надёжно сохранены (для центрального хранилища возможно сказать, каковы и риски и ограничить к нему доступ), во-вторых, не всегда понятно, где актуальные данные (далеко не всегда актуальным является файл с более новой датой), в-третьих осуществлять синхронизацию между разными устройствами не сложно, а вот между разными устройствами разных пользователей уже сложнее.

                    В случае же центрального хранилища, оно является эталоном и, в плюс, возможно обеспечить сервисы на базе сохранённых данных в NAS (тот же медиа-сервер).
                    При этом, с учётом того, что такие данные, как учебное видео, музыка и git-репозитории всё-равно хранятся на нескольких компьютерах, по сути приходим к тому же, что делает Syncthing.
                    Плюс к тому, я могу с устройств, где нет клиентов Syncthing и подобных, всегда получить доступ к своим файлам.
                      0
                      Это системы только для синхронизации, о чём я написал.
                      Общая же проблема в том, что такой вид зеркалирования во-первых не даёт гарантий, что данные будут надёжно сохранены (для центрального хранилища возможно сказать, каковы и риски и ограничить к нему доступ)

                      Вот тут не согласен, если у нас постоянно поднят сервер и на нём стоит BT Sync, данные с ним будут постоянно синхронизироваться, так же есть настройка которая позволяет сохранять резервные копии удаляемых файлов, и необязательно давать ключ на запись всем, можно дать ключ только на чтение. Syncthing пока не пробовал, ничего про него сказать не могу.

                      Касательно центрального хранилища это выглядит больше как корпоративное решение.
                        0
                        Ну ok, та же синхронизация с центральным хранилищем, только с использованием P2P.
                        В облаке работать удобнее.
                        А для того, чтобы файлы не пропадали, я систему резервного копирования доделываю.
                    0
                    Nextcloud в докере. Зачем? Зачем так извращаться?

                    Статья была бы интересной, если бы было более подробное сравнение сервисов. Но половина статьи о том «как настроить свой сервер».
                      +1

                      Зачем, очевидно: увеличить изоляцию. Это позволяет усилить безопасность, а также избежать конфликтов зависимостей между разными сервисами, причём базируется это на официальном образе NextCloud, и они сами предоставляют такой вариант.


                      В чём здесь вы увидели извращение?


                      Статья была бы интересной, если бы было более подробное сравнение сервисов. Но половина статьи о том «как настроить свой сервер».

                      Оно не подробное. Наверное потому, что статья одна из цикла о том, как настроить свой сервер.

                        +2

                        Если вам поломают nextcloud, то данные тоже будут в руках злоумышленника, независимо от изоляции облака от хоста. А целостность хоста… Она точно настолько важна?

                          0
                          Не все данные, а только общие данные и часть данных пользователей, репозитории сюда не входят.
                          0
                          Просто для справки: я, начитавших таких вот советов про «повысить изоляцию» и «усилить безопасность», поднял nextcloud на своем домашнем сервере именно в докер-контейнере.

                          Ну, я получил скорость установки простейшего плагина около минуты. Дождаться конца установки плагина офиса у меня не хватило терпения.

                          А еще возня с пробрасыванием конфига, с рестартом сервера, с вот этим всем.

                          А потом я плюнул и поднял nextcloud на виртуальном хосте (сначала apache, потом nginx).

                          Рассказать вам насколько все стало быстрее работать или не надо?

                          P.S. Да и вообще, какой мне толк от докер-контейнеров, если системы и софт в них собраны под универсальный какой-попало процессор и какую-попало какую-нибудь x64 архитектуру. Все выгоды от компиляции специально под мой проц теряются.
                            0
                            Ну, я получил скорость установки простейшего плагина около минуты. Дождаться конца установки плагина офиса у меня не хватило терпения.

                            Но у меня-то всё работает быстро, и при этом, я имею все плюсы докера. Кроме того, докер — не виртуальная машина, а уровень изоляции, типа "глубокой" песочницы, т.е. он не вносит серьёзных накладных расходов. При этом, стоит заметить, что в моём случае докер использует в качестве бэк-энда ZFS, и тоже самое было бы без докера.


                            А еще возня с пробрасыванием конфига, с рестартом сервера, с вот этим всем.

                            Я не заметил: у меня всё это делается легко и просто.


                            Рассказать вам насколько все стало быстрее работать или не надо?

                            Расскажите. Возможно, проблема не в скорости, а в том, что в процессе установки приложение с ошибкой падало (да у Nextcloud бывает такая проблема). Это не говорит, что в докере оно медленнее работает: у вас оно просто не работало по каким-то причинам.


                            P.S. Да и вообще, какой мне толк от докер-контейнеров, если системы и софт в них собраны под универсальный какой-попало процессор и какую-попало какую-нибудь x64 архитектуру. Все выгоды от компиляции специально под мой проц теряются.

                            Похоже, что вы не особенно хорошо понимаете, что такое Docker.
                            Во-первых, большая часть NextCloud реализована на PHP, и узкое место стоит искать в реализации, а не в интерпретаторе.
                            Во-вторых, если вы не используете Gentoo-based, ваш интерпретатор также собран без оптимизаций под конкретную платформу.
                            В-третьих, при желании вы можете собрать персональный Dcoker образ с включенными для вас оптимизациями, но вот стоит ли это делать, вопрос дискуссионный.

                              0
                              а уровень изоляции, типа «глубокой» песочницы, т.е. он не вносит серьёзных накладных расходов

                              спасибо, я в курсе.

                              а в том, что в процессе установки приложение с ошибкой падало (да у Nextcloud бывает такая проблема).

                              Почему же ровно тот же nextcloud вне докера работал без ошибок и никуда не падал? :)

                              И да, в логах ошибок не было. Просто все было ооооооооооооочень неторопливо.

                              Во-первых, большая часть NextCloud реализована на PHP, и узкое место стоит искать в реализации, а не в интерпретаторе.

                              Ну да, разумеется, то, что интерпретатор тоже внутри контейнера, вас не смущает? И собран он под какую-попало платформу.

                              Gentoo-based, ваш интерпретатор также собран без оптимизаций под конкретную платформу.

                              Вот как раз Gentoo то я и использую :) Поэтому я знаю, о чем говорю :)

                              И, как по синтетическим тестам, так и по реальным прирост примерно в 22-25%.

                              вы можете собрать персональный Dcoker образ с включенными для вас оптимизациями, но вот стоит ли это делать, вопрос дискуссионный.

                              Этот уровень красноглазия я возьму когда-нибудь, но не в этом году.
                                0
                                Почему же ровно тот же nextcloud вне докера работал без ошибок и никуда не падал? :)

                                Потому что таймауты другие.


                                И да, в логах ошибок не было. Просто все было ооооооооооооочень неторопливо.

                                1. Из вашего предыдущего комментария, я заметил, что вы сначала использовали Apache, а потом перешли на nginx. Не из-за скорости ли? И что было в контейнере?
                                2. Docker ограничивает capabilities. И приложение, например, не сможет что-то изменить через sysctl. В случае NextCloud, это может быть критично для Redis. Обратите внимание на строчку в конфиге sysctl с комментарием "Redis requirement". Это сделано для NextCloud. В 3 формате docker-compose возможно прямо в конфиге прописывать capabilities, но т.к. я использую старый, сделал это через sysctl.
                                3. По аналогии выше, могут быть сходные причины с другими компонентами. Ну и ваш Gentoo никто не отменял. У вас же при компиляции интерпретатора наверняка включены оптимизации под вашу платформу. Либо пересоберите контейнер и сравните, либо нивелируйте разницу соответствующим железом.

                                И, как по синтетическим тестам, так и по реальным прирост примерно в 22-25%.

                                Так а что вы хотите? Это нормально. Если для вас это критично в случае NextCloud (не работает быстро, нагрузка слишком большая и т.п.), и вы не можете решить проблему "горизонтальным масштабированием", наращивая мощности, решите оптимизацией.


                                Ну да, разумеется, то, что интерпретатор тоже внутри контейнера, вас не смущает? И собран он под какую-попало платформу.

                                Нет, потому что именно так и должно быть. А собран он под x86_64. Большинство операционных систем тоже не пересобирается из сорцов. Это просто не требуется. Потому что многократная сборка компонента может занять времени больше, чем выигрыш от тех 20% увеличения производительности.


                                Немного лирики

                                Понятно, что есть много нюансов. К примеру, если вы спите ночью, и в этом время проходят обновления, то для вас это может быть не критично (если у вас несколько компьютеров, а не датацентр из гетерогенного железа, который сожрёт гигаватт на перекомпиляции, либо потребует оплаты труда пары архитекторов для организации централизованного обновления). И стоит вспомнить о том, что 20-25% — нетипичный выигрыш, а вот проблем за счёт того, что тестирование продукта, скорее всего, производится разработчиками с выключенными оптимизациями, возможно огребсти.

                                  0
                                  Изначально апач был везде — и в контейнере, и на хосте. На nginx я перешел уже сильно после той истории. На nginx я в конечном счете перешел именно из-за скорости, но к истории он отношения не имеет.

                                  net.core.somaxconn = 511

                                  Строчку вижу. В конечном счете мне пришлось добавить такую же к себе, но связано это было не с nextcloud (он прекрасно жил без неё), а для vagga+redis.

                                  Либо пересоберите контейнер и сравните, либо нивелируйте разницу соответствующим железом.…
                                  в случае NextCloud (не работает быстро, нагрузка слишком большая и т.п.)


                                  почувствуйте разницу: nextcloud в докере ставил плагины примерно по полторы минуты. nextcloud вне докера, на чистом хосте ставил плагины примерно за 5-7 секунд. Ну то есть чисто по отзывчивости — нажал install plugin, засек время до появления строчки installed.

                                  Потому что многократная сборка компонента может занять времени больше, чем выигрыш от тех 20% увеличения производительности.

                                  Ну так уж и многократная…

                                  Зависит от задачи, впрочем.
                                    0
                                    почувствуйте разницу: nextcloud в докере ставил плагины примерно по полторы минуты. nextcloud вне докера, на чистом хосте ставил плагины примерно за 5-7 секунд. Ну то есть чисто по отзывчивости — нажал install plugin, засек время до появления строчки installed.

                                    Вероятно, это не проблема с производительностью Docker, а конкретно проблема с производительностью NextCloud в Docker на вашей платформе.

                                      –2
                                      Разумеется, о чем и речь.

                                      Что там внутри контейнера? Убунта, веб-сервер, связка плагинов, собранных как попало, PHP какой попало, сервер СУБД тоже какой попало. Не удивительно, что оно всё вместе тоже работает как попало.
                                        0
                                        Да почему «как попало»? С этой связкой разработчики и тестируются. Опять же: УМВР, пусть и не всегда идеально.
                                          0
                                          Там скорее проблема в overlayfs/aufs — они медленные, особенно поверх hdd. Ну и в прочих подобных вещах.
                                          ЗЫ — проще дома в cgroups-nspawn всё запускать.
                                            0
                                            Напомню, что в случае NAS, там ZFS бэкэнд.
                                              0
                                              У меня докер все держит на BTRFS, отдельный раздел, разумеется
                                                0
                                                Вряд ли я что-то могу сказать о её производительности, но вот с учётом надёжности и вероятности дальнейшей поддержки, я бы поостерёгся использовать BTRFS.
                                                  0
                                                  Я многое читал на эту тему — и мнения диаметрально противоположные были.

                                                  Я решил довериться профессионалам — мейнтейнерам Gentoo.

                                                  Уберут поддержку, пометят её как нерекомендуемую — пересоздам раздел (благо LVM), перекомпилирую ядро без BTRFS, перестану пользоваться.
                                                    0
                                                    RHEL, например, с 2017 поддержку остановил, да и как-то плохо у них сейчас насчёт перспектив вообще.
                                                      0
                                                      Непонятно, почему я должен ориентироваться на красношапочников, если их продукцию я уже 2.5 года не использую нигде, ни дома, ни на работе.
                                                        0
                                                        Не должны, это лишь пример одного из основных дистрибутивов, который уже отказался.
                            0
                            Изначально было желание использовать Seafile: серверная часть реализована на C, он эффективен и стабилен.
                            Но выяснилось, что в бесплатной версии есть далеко не всё. В частности, не хватило интеграции с LDAP.

                            В бесплатной версии Seafile есть поддержка LDAP.

                              0

                              Да, похоже вы правы. Ставил давно, забыл, что конкретно не хватало. Вероятно, одна из причин — отсутствие разграничения прав на подкаталоги.

                              0
                              Я сейчас параллельно установил Nextcloud и Syncthing — чтобы понять какой более подходит под мои нужды. Как ни странно, после сравнения пришел к выводу что это разные проекты для решения разных задач и они оба мне подходят :-) Syncthing оказался более удобным именно для синхронизации файлов между устройствами (при этом быстрее Resilio), а Nextcloud неплох как средство командного взаимодействия, к тому же в нем есть контакты и прочие полезные вещи.
                                0

                                Собственно, про это говорилось. А для именно командного взаимодействия (работы групп в рамках проектов) имеется несколько другой класс систем.

                                0
                                А какой компонент использует inotify-tools и ffmpeg?
                                  0
                                  inotify-tools использует неофициальный плагин, который мониторит изменение файлов во внешнем хранилище: без него этот плагин не установится.
                                  ffmpeg, не помню, вроде какой-то из плееров.

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое