Pull to refresh

Comments 95

Кстати, был бы рад услышать об использовании в продакшене. У меня очень удачный опыт интеграции owncloud для нужд научной лаборатории. Особенно актуально, когда есть коллеги из других центров с которыми некого нужно обмениваться тяжелыми данными. При этом все плюсы контроля доступа к каталогам и версионирования.
Почему не поменяете в конфиге nginx путь на root /var/www/owncloud/;, чтобы не надо было вбивать example.com/owncloud?
Сам использую в учебе, считаю Owncloud — невероятно удобным решением. У меня используется Caddy в качестве Web-сервера: он сам получает LE сертификаты, а также поддерживает http2 из коробки.
Можно и так. Просто у меня корневой домен обычно на что-то еще может указывать. Привычка.
Тогда нет вопросов=)
У меня на субдомене cloud.example.com, поэтому и использовал прямое указание.
Вот, кстати, до сих пор не понимаю логику выбора между service.example.com и example.com/service
В моем случае, owncloud находится на отдельном сервере, мне было легче указать субдомен. Знакомый пошел по такому же пути, чтобы не портить WP.
А так — на вкус и цвет…
Плюсы service.example.com
— Свой набор кук, но могут быть и общие с example.com
— В верстке можно указывать путь "/" на главную страницу сервиса. В случае с example.com/service, нужно контролировать, чтобы не попасть на главную example.com
Ну и основной плюс, при переезде на другую машину, вы просто меняете запись в DNS и все счастливы.
А есть ли какой-то ресурс, где можно было бы узнать о том, насколько успешно работает owncloud на конкретном железе под конкретными нагрузками?
Чтобы хотя бы примерно сориентироваться по железу для такого вот сервера на небольшую компанию…
Можно у них спросить. Вообще они декларировали тысячи пользователей и терабайты данных. Но, вероятно, потребуется нетривиальная архитектура и поиск узких мест.
В подобных сервисах узкое место — дисковая система. Учитывая, что OwnCloud выкладывает файлы в нативном виде (не в базу данных или в один файл), нагрузка на файловую систему (за счет мелких файлов) лишь усугубит эту проблему. Потому хороший рейд или даже отдельная полка с дисками не помешает. Кроме этого, присутствует запись в базу данных — ее со временем нужно будет тюнить и, возможно, защищать кластерным решением (как для отказоустойчивости, так и для скорости записи-чтения).
У меня owncloud в контейнере docker, образы доступны.
Из плюсов — стабильность, нет оверхеда на виртуализацию целой вирт.машины, не упираюсь в объем диска виртуальной машины, обновление проходят более предсказуемо.
Минусов не обнаружил.
Минус — слабый клиент. При большом количестве файлов он просто безбожно ест ресурсы рабочей станции, пересматривая метаданные файлов :(
Это было бы минусом если бы другой клиент в этих же условиях (ОС+железо) не начинал тормозить при большом количестве файлов.
Клиенты некоторых других бекапных систем умеют работать с трекинговой системой, которая отслеживает изменяемые файлы в пределах файловой системы и записывает эти изменяемые файлы в журнал. После начала сессии резервного копирования клиент берет список измененных файлов из журнала и по этому списку начинает свою работу. Поинтересуйтесь.
Спасибо за направление поисков.

Только что попробовал создать файл в папке, которая синхронизируется в клауд.
Файл не стал дожидаться сессии и тут же синхронизировался.
По значку в трее и файлу на сервере он действительно синхронизировался прямо вот сейчас.
На первый (да и на второй) взгляд этого достаточно для ежедневной работы (в клауде ~200гб, клауд в контейнере докера).
Там иногда странная фигня творится только, когда работаешь прямо в каталоге синхронизации и быстро переименовываешь/пересохраняешь файлы. Бывают конфликты на соседних машинах. Но редко.
Каждому инструменту своё использование.
Для конкурентного доступа используются другие средства, поинтересуйтесь.
Позвольте поинтересоваться, а вы не щупали nextcloud? Как человек с опытом использования что думаете об этой всей ситуации?
Это форк? Не смотрел. Я уже два года использую owncloud, пока не подводил. Особенно стабилен после 9.0

Да, форк. Как написали ниже:


в nextcloud ушла большая часть разработчиков owncloud, и сам он позиционируется как более свободная альтернатива.
Перешел на него и в организации тоже перешли на него. Все отлично проблем нет. Советую.
Сам на него перешёл и организацию перевёл. Работает хорошо. Старые клиенты немедленного обновления и перенастройки не требуют, пользователи даже не заметят изменения серверной части (кроме других логотипов и иконок).
Сам переход выполняется без проблем, все настройки и данные сохраняются.
Единственное, что непонятно осталось — что за стаут-то был?
image
Russian Imperial Stout от пивоварни Heartly. Как сказала моя хорошая знакомая: «После этого пива очень хочется надеть шапку-ушанку со звездой и пойти устраивать революцию»

А можно не напрягаться и поднять в Docker


docker-compose.yml
fe:
  image: nginx:stable-alpine
  restart: always
  volumes:
    - ./nginx.conf:/etc/nginx/nginx.conf:ro
  ports:
    - 80:80
  links:
    - be
  volumes_from:
    - be
be:
  image: owncloud:fpm
  restart: always
  volumes:
    - /mnt/hdd/opt/owncloud:/var/www/html
Я дикий человек. Docker не использовал. KVM с полной изоляцией мне привычнее.

А почему owncloud а не nextcloud? Насколько я помню, в nextcloud ушла большая часть разработчиков owncloud, и сам он позиционируется как более свободная альтернатива.

Я пропустил этот момент. Ситуация схожа с OpenOffice vs. LibreOffice? Я вижу, что owncloud движется в сторону Enterprise-услуг. В принципе, нормальная модель монетизации. Я обязательно посмотрю. Просто у меня уже все два года как развернуто. Перенос — дело гадкое. Надо понять полученные от этого плюшки.

Сейчас миграция от обновления ничем не отличается, недавно мигрировал с 9.1 на 10.0.1, всё прошло гладко.

nextcloud позволяет подключать внешние ресурсы из админки. без заморочек с mnt и cifs. Я имею в виду некоммерческие версии. Буквально 2 недели назад внедряли в конторе.
Имелось уже созданное хранилище документов samba и AD.
Сначала пробовали owncloud. Но вылезли те самые проблемы с подключением шар пользователей к аккаунтам в owncloud.
Поставили nextcloud. Добавили плагин для авторизации пользователей AD. под админом подключили общее хранилище (самба), в котором пользователи, естественно, имеют различные разрешения на доступ к содержимому (Изначально шара настроена так что пользователи видят только тот контент для которого у них есть соответствующие разрешения).
потратили целых 75 рублей и купили приложение для ios (приложение owncloud — показало себя лучше чем nextcloud. последний начинает безбожно вылетать, если ему что-то не нравится. При этом первый прекрасно работает с сервером nextcloud. Эдакая прямая совместимость...)
Из плюсов — не нужно заводить пользователей, или разрешать им самостоятельную регистрацию — все импортируется ид AD.
Из минусов — пользователи AD не могут сами подключать себе собственные удаленные хранилища (это скорее недоработка чем баг, но неприятно), хотя локальные пользователи nextcloud могут.
подскажите, в nextcloud есть плагины для работы онлайн нескольких пользователей с таблицами?
Есть Collabora Online connector и LibreOffice Online для создания и редактирования.
но эти плагины я не подключал, поэтому не могу сказать как они будут работать…
А там коннектор в режиме реального времени, или же за синхронностью того, что импортнулось и что сейчас актуального в AD надо следить ручками?
Не совсем реального, но близко к тому. Периодичность в несколько минут.
спасибо за очень познавательную и подробную статью!
Есть несколько вариантов, но наиболее предпочтительным в большинстве случаев является установка из репозитория. Пусть у пакетного менеджера голова болит по поводу обновлений.

Такой подход конкретно для owncloud работает не особо. А именно в пакетах очень часто забивают на обновления. Owncloud это веб приложение, и как WP можно обновлять из админки (в новых версиях так), один раз обновив его так вручную — словил не работающее хранилище при апгрейде пакетов (по сути был downgrade), теперь обновляю исключительно из админки и устанавливаю Ownclod без использования пакетного менеджера.
Странно. Если честно, ни разу вручную не обновлял за два года, полет нормальный. Стабильная ветка. Сами разработчики вроде пакеты рекомендуют для Linux.
Хуже того, был сравнительно недавно случай, когда в репозиторий выложили кривой релиз. Привычно обновился и все попадало. Я тогда, неожиданно для себя, вдруг присоединился к разработке Owncloud. Почти две недели вылавливал и правил всякие косяки. И только через эти две недели, когда у меня уже все стабильно работало, в репозитории появилась исправленная версия. Был бы я чуть более далек от веб-разработки — две недели сосал бы лапу. Так что теперь обновления Owncloud только ручками — нет у меня к ним доверия…
Для меня он в данной задаче выглядит проще в настройке и привычнее. Где-то мелькали тесты о более быстрой работе с owncloud. А так, конечно, это субъективное предпочтение. Не настаиваю. Привел именно реальный кейс, который работает.
Потому, что апач давненько уже просто не нужен. Энджинкс легковеснее, скоростнее, не тратит кучу ресурсов на проверку .htaccess в каждой папке при запросе каких-то файлов и так далее…

Кроме того, как уже выше писали, надо ставить Nextcloud. Туда ушли почти все, кто разрабатывал OwnCloud, включая изначального разработчика. У них более открытая политика, не будет закрытых компонентов. Скоро выпустят 11-ю версию с обновлённым каталогом дополнительных приложений и кучей других вкусностей.
OwnCloud погряз в бюрократии, лишился разработчиков и теперь будет только в догоняющей роли.
Я это упустил. Не до того было. Есть хороший мануал по миграции с owncloud 9.1? У меня просто это продакшен с парой сотней гигабайт данных.
Ну, данные ваши никуда не денутся в процессе миграции. Вот, например, пост о миграции: http://blog.jospoortvliet.com/2016/06/migrating-to-nextcloud-9.html

Можно смигрироваться на Nextcloud 9.1, потом уже проапгрейдиться. Думаю, так будет меньше волнительных моментов.
Исчерпывающе, спасиб
//уходит изучать энжиникс
Вот, кстати, при установке owncloud'а ниасилил подключить шару, которая была на виндовом сервере. Была какая-то моему бедному опыту и скудным знаниями линухи непонятная проблема с правами доступа.
Подскажите, пожалуйста, есть домен example.com, он привязан к статическому IP, как сделать чтобы example.com отрабатывал в одном docker контейнере, а cloud.example.com в другом контейнере? Или так нельзя сделать?
Как вариант — nginx на хосте (или же опять в своем контейнере) в роли реверс прокси.
Где-то полгода назад тоже перешел на Owncloud. Очень доволен.
По своему опыту могу заметить, что php очень желательно ставить версии >= 7.0, прирост скорости в веб-клиенте в раза 2 точно по отношению к 5.6.
В статье немного не хватает пункта про организацию бекапа, впрочем об этом расписано и в официальной документации.
Я решил, что совсем будет огромный объем. Тем более, речь об установке в первую очередь.
Бэкапить можно скриптиком базу, а кроме этого папку /data от самого own/nextcloud'а с помощью Syncthing на другой комп/сервак.
У меня это проще. Виртуальная машина. Снапшоты.
Можно поинтересоваться? Гипервизор чьих будет? :)
Debian wheezy, KVM. Управляю virt-manager'ом.
Просто чего интересовался то: я просто знаю, что хранение «бекапов путем снапшотов» с VMware или Hyper-V — противопоказано доктором. А вот как обстоят дела с Debian wheezy не знаю. И что подразумевается там под понятием «снапшот» тоже не знаю. Ну, вообщем тем, кто прочтет — главное, чтобы не превращали снапшоты в бекапы на вышеуказанных мною HV :)
В общем да, к этому и сводится суть описанного в документации.
Я воткнул старенький хард на 500гб в сервачок и ежедневно rsync-аю /data + дампаю БД.
А что за путь /.well-known ?! У меня при попытке запустить certbot-auto выдает:
The directory '/home/owncloud/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/owncloud/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

Запускаю с -H:
Invalid response from http://*****/.well-known/acme-challenge/NMTDCgEEnPup_YVaDGDd7fBi62RxG089701N8HxRPGo

И далее ругается что нет такого файла и каталога.
У меня не получилось воспроизвести. С нуля разворачивал.
Проверь, пожалуйста с другим webroot. Судя по всему, я указал неверный дефолтный путь. В 16.04 он /var/www/html.
Спасибо за статью, как раз собираюсь поднять Own(Next?)Cloud на своем мини-сервачке(Cubieboard2).
Что по ресурсам, какая скорость в локалке? Думаю, потянет ли 1GHz arm процессор и 1Гб оперативки всю эту красоту или оставить все как есть и работать с файлами по samba.
Должен, по идее. Он больше к IOPS требователен
Пробовал на Cubietruck. Тяжеловато ему было, но работало кое-как. Главное в веб-клиент не лазить к фоткам, миниатюры делать очень ресурсоёмко.
Когда я понял, что Owncloud не игрушка, а вполне нормальное приложение, то продал кубик и купил «кубик» побольше — HP Microserver Gen8
Обычный StartSSL и другие сертификационные центры не станут с вами работать, если вы не владеете 2 уровнем.

Только на днях получил сертивикат у StartSSL для домена третьего уровня у no-ip.com (конкретно у меня домен вида example.ddns.net).

А статья действительно очень подробна. Спасибо.
В комментариях достаточно много хвалили own/next cloud, а что можете сказать про seafile? С первого взгляда мне показался очень приятным.
Если не нужна синхронизация контактов и календаря, то однозначно лучше! Особенно это заметно при синхронизации кучи маленьких файлов. На виртуалке (ovz) c 512 Mb RAM OwnCloud встает колом а Seafile даже не вспотеет. :)
Может посоветуете, если нужны контакты и календарь, то лучше всё же OwnCloud или заморочиться и настроить seafile + выделенный caldav сервер (radicale например)
К сожалению посоветовать Вам ничего не могу, так как не использовал функции синхронизации календаря и контактов в OwnCloud. Рассматривал его только в качестве облачного файлового хранилища.
Благодаря комментариям тут, установил попробовать.
К сожалению возможности seafile по хранению версий файлов ведут к главному недостатку (для меня) — свой формат хранения данных. Т.е. просто сделать симлинк на каталог на сервере в котором уже есть нужные данные не получится. В этом плане nextcloud (я его использовал) удобнее, можно через external storage подключить нужную папку. И в случае если «все упало», можно просто подключить диск и забрать свои файлы. Ну или когда с данными работают несколько приложений. У меня в nextcloud подключена файлопомойка куда в частности торренты скачиваются. С seafile насколько я понял этого не выйдет.

Поскольку вы уже смотрели seafile, видимо в курсе этого. Комментарий для тех, кто выбирает.
Я не подключал подобным образом внешние хранилища к нему. А как он их индексирует в этом случае? Там же все плюшки связаны с метаданными, комментариями, правами на доступ и версионированием. То есть далеко от samba/NFS/ftp файлопомойки.
Собственно об этом и комментарий :)
К моему сожалению там нет варианта отключить версионирование для данной библиотеки и хранить данные как есть. Т.е. отключить то можно, но хранит он все равно по своему.

Это не хорошо и не плохо, это просто особенность seafile.
Получил ответы, на мучившие вопросы. Большое, человеческое спасибо!
Рад, что пригодилось.
Вот это я понимаю вдохновляющая статья! ownCloud я не поставил, но зато наконец руки дошли настроить автоматическое получение Let's Encrypt сертификатов и попробовать в работе docker-compose.
А как ownCloud (Nextcloud) относятся к большим файлам — десятки гигабайт? Есть ли проблемы с их удалением и очисткой свободного места на хранилище?
Я просто использую в подобных случаях Seafile и там все хорошо, кроме этого момента, при хранении нескольких версий больших файлов очистка свободного места доставляет некоторые неудобства…
Нормально, но надо лимиты аплоада править в php-fpm
А какие именно неудобства при удалении больших файлов у Вас возникали?
Не уверен уместно ли здесь это обсуждать, в принципе я подробно описал проблему на форуме Seafile вот здесь https://forum.seafile.com/t/garbage-collector-cant-release-space-if-deleted-file-have-a-big-size/904
«certbot-auto» качался отдельно по какой-то определённой причине или исторически? В Ubuntu 16.04 точно есть пакет letsencrypt. Да и: «Until May 2016, Certbot was named simply letsencrypt or letsencrypt-auto, depending on install method.»
Упустил момент. Но он все равно обновляется как скрипт через pip до последней версии. Спасибо, в любом случае.
спасибо за статью!
небольшой коммент: после того, как я всё настроил согласно статье, не удавалось зааплоадить любой файл более 5 мб.
чтобы это исправить, дописал в конфиг nginx'а /etc/nginx/nginx.conf в секцию http {} следующую строчку:
client_max_body_size 1024m;
(сам в линуксах и прочих энджинэксах не силён, поэтому решение было найдено на просторах интернета)
один из вариантов решения — поправить значения в php.ini:

upload_max_filesize — максимальный размер закачиваемого файла
post_max_size — максимальный допустимый размер POST-данных

оба этих значения изменить например на 16g (для заливки файлов до 16 гигабайт через веб-морду)

ещё варианты описаны в официальном мане

php.ini разве пойдет, если работаем с php-fpm?
для php-fpm php.ini будет лежать по умолчанию в /etc/php/7.0/fpm/php.ini

для апача

php -i | grep php.ini

Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini

Исходя из функционала php-fpm — не вижу препятствий для работы php.ini
В общем, способов реализации несколько и они зависят от того, как и на чём будет запущено облако. Для единственной машины с owncloud/nextcloud внутри подойдёт и глобальная политика размера загружаемых файлов, а если на сервере крутится ещё и несколько веб-проектов с использованием php — то лучше не трогать глобальный конфиг и использовать например .htaccess.
Ещё php-fpm позволяет запускать разные воркеры с разными php.ini, но это уже ненужные заморочки ;)
Как только не мучился с изменениями файлов — ничего не помогало, в итоге все решается в файле /var/www/nextcloud/.user.ini — там меняются параметры загрузки через морду. В оф.мануале написано — Nextcloud comes with its own nextcloud/.htaccess file. Because php-fpm can’t read PHP settings in .htaccess these settings must be set in the nextcloud/.user.ini file.
Как мне правильно указали — надо переходить на Nextcloud, куда сбежали все разработчики. Я упустил этот момент в силу того, что уже довольно давно сижу на этой системе.

ну тогда ждёмс новую статью по установе Nextcloud на nginx :)
Та же фигня. Я пишу статью по миграции. Отличия минимальны — можно пользоваться этим мануалом. Я уже перенес все.

Сложно сказать. А должно было… Файл действительно доступен снаружи. Я кстати, где-то адрес виртуальной машины успел засветить?)

Да нет, не сложно. Регэкспы написаны для случая, когда файлы в корне, а тут они в папке owncloud. Я просто тоже задумал переезжать на nginx и nextcloud, и первым делом с ними столкнулся.
где-то
«где-то» — это не то слово) Мне вообще казалось, оно там специально… Надеялся про эболу почитать… Прошу пардону тогда)

А. Черт) понял. Ладно, не критично. Буду благодарен фиксам)

Ой, я тот ещё конфигописец. Но как-то так, наверное:

Заголовок спойлера
rewrite ^/.well-known/carddav /owncloud/remote.php/carddav/ permanent;
rewrite ^/.well-known/caldav /owncloud/remote.php/caldav/ permanent;

location ~ ^/owncloud/(?:build|tests|config|lib|3rdparty|templates|data)/ {…
location ~ ^/owncloud/(?:\.|autotest|occ|issue|indie|db_|console) {…
location ~ ^/owncloud/(?:\.htaccess|data|config|db_structure\.xml|AUTHORS){…

location ~ ^/owncloud/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
fastcgi_pass php-handler;


location ~ ^/owncloud/(?:updater|ocs-provider)(?:$|/) {…


Правда, тут ещё и сам оригинальный regexp с wiki nextcloud-а, к каким файлам и папкам нужно, и каким не нужно ограничивать доступ, может быть неточным, потому что его писали не разработчики, а кто-то из комьюнити, и писали давно: например, README в конфиге есть, а по факту в дистрибутив он уже не входит…

О. Спасибо. Я протестирую внимательно.

Sign up to leave a comment.

Articles