Pull to refresh

Comments 49

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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


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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Этот уровень красноглазия я возьму когда-нибудь, но не в этом году.
Почему же ровно тот же 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% — нетипичный выигрыш, а вот проблем за счёт того, что тестирование продукта, скорее всего, производится разработчиками с выключенными оптимизациями, возможно огребсти.

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

net.core.somaxconn = 511

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


А можете описать, чего именно Вам нехватило в бесплатной версии?
Sign up to leave a comment.

Articles