Комментарии 49
Конечно. Наверняка у большинства, хотя я на это и не обращал внимания, т.к. мне не особенно требуется. Как минимум, у NextCloud, OwnCloud и SeaFile.
Добавлю немного от себя про Nextcloud:
+ Файлы хранятся в нативной линуксовой FS. В seafile — в своем каком то блочном формате. Я для себя решил что возможность восстановления информации в случае чего, для меня важнее чем плюшки производительности проприетарной seafile, по этому как и автор, выбрал Nextcloud. Да, в результате дома поселился мини сервак на десктопной платформе (mini ATX), при этом, сейчас я могу подключить 4 диска 3,5" и два m.2. т.е., для домашнего сервера(в отличие от intel NUC) я имею неплохо масштабируемую систему.
-Минус как мне кажется один: Надо быть «немножечко» Linux админом.
Мой инстанс Nextcloud в docker-compose успешно пережил апгрейд до версии 15, однако и заметки, и OnlyOffice работают как ни в чём не бывало.
Для заметок имеет смысл использовать QOwnNotes, который умеет интеграцию с nextcloud и git, а еще способен (через скрипт, который ставится из его собственного репозитория) шифровать-дешифровывать заметки pgp ключом одним кликом мыши.
Про QOwnNotes учту. Спасибо.
По сравнению с чем и почему лучше?
Заметки должны быть кроссплатформенными и (желательно) полностью 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 (все равно лицензия идет с исходниками, любая лицензия включая минимальную), ну да это вики — но как некий минимальный заметочник — подойдет. И с мобильного тоже. Правда ресурсов кушает… много (хотя возможно я ее готовить не умею).
Существенный минус только один — поддержку чужого железа(изначально операционка работает только на NAS-ах Synology) делают энтузиасты через кастомные загрузчики.
На мой взгляд куда более практичное и универсальное решение если надо зеркалировать одни и те же данные на несколько компьютеров, можно и без отдельного сервера, так же Resilio Sync пробивает провайдерский NAT без всяких лишних телодвижений. В общем одни сплошные плюсы мне видятся
Syncthing — действительно неплохая штука. Но всё-таки, её применимость в случае наличия централизованного сервера, несколько сомнительна (а цикл статей именно этому посвящён).
Общая же проблема в том, что такой вид зеркалирования во-первых не даёт гарантий, что данные будут надёжно сохранены (для центрального хранилища возможно сказать, каковы и риски и ограничить к нему доступ), во-вторых, не всегда понятно, где актуальные данные (далеко не всегда актуальным является файл с более новой датой), в-третьих осуществлять синхронизацию между разными устройствами не сложно, а вот между разными устройствами разных пользователей уже сложнее.
В случае же центрального хранилища, оно является эталоном и, в плюс, возможно обеспечить сервисы на базе сохранённых данных в NAS (тот же медиа-сервер).
При этом, с учётом того, что такие данные, как учебное видео, музыка и git-репозитории всё-равно хранятся на нескольких компьютерах, по сути приходим к тому же, что делает Syncthing.
Плюс к тому, я могу с устройств, где нет клиентов Syncthing и подобных, всегда получить доступ к своим файлам.
Общая же проблема в том, что такой вид зеркалирования во-первых не даёт гарантий, что данные будут надёжно сохранены (для центрального хранилища возможно сказать, каковы и риски и ограничить к нему доступ)
Вот тут не согласен, если у нас постоянно поднят сервер и на нём стоит BT Sync, данные с ним будут постоянно синхронизироваться, так же есть настройка которая позволяет сохранять резервные копии удаляемых файлов, и необязательно давать ключ на запись всем, можно дать ключ только на чтение. Syncthing пока не пробовал, ничего про него сказать не могу.
Касательно центрального хранилища это выглядит больше как корпоративное решение.
Статья была бы интересной, если бы было более подробное сравнение сервисов. Но половина статьи о том «как настроить свой сервер».
Зачем, очевидно: увеличить изоляцию. Это позволяет усилить безопасность, а также избежать конфликтов зависимостей между разными сервисами, причём базируется это на официальном образе 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 вне докера работал без ошибок и никуда не падал? :)
Потому что таймауты другие.
И да, в логах ошибок не было. Просто все было ооооооооооооочень неторопливо.
- Из вашего предыдущего комментария, я заметил, что вы сначала использовали Apache, а потом перешли на nginx. Не из-за скорости ли? И что было в контейнере?
- Docker ограничивает capabilities. И приложение, например, не сможет что-то изменить через sysctl. В случае NextCloud, это может быть критично для Redis. Обратите внимание на строчку в конфиге sysctl с комментарием "Redis requirement". Это сделано для NextCloud. В 3 формате docker-compose возможно прямо в конфиге прописывать capabilities, но т.к. я использую старый, сделал это через sysctl.
- По аналогии выше, могут быть сходные причины с другими компонентами. Ну и ваш Gentoo никто не отменял. У вас же при компиляции интерпретатора наверняка включены оптимизации под вашу платформу. Либо пересоберите контейнер и сравните, либо нивелируйте разницу соответствующим железом.
И, как по синтетическим тестам, так и по реальным прирост примерно в 22-25%.
Так а что вы хотите? Это нормально. Если для вас это критично в случае NextCloud (не работает быстро, нагрузка слишком большая и т.п.), и вы не можете решить проблему "горизонтальным масштабированием", наращивая мощности, решите оптимизацией.
Ну да, разумеется, то, что интерпретатор тоже внутри контейнера, вас не смущает? И собран он под какую-попало платформу.
Нет, потому что именно так и должно быть. А собран он под x86_64. Большинство операционных систем тоже не пересобирается из сорцов. Это просто не требуется. Потому что многократная сборка компонента может занять времени больше, чем выигрыш от тех 20% увеличения производительности.
Понятно, что есть много нюансов. К примеру, если вы спите ночью, и в этом время проходят обновления, то для вас это может быть не критично (если у вас несколько компьютеров, а не датацентр из гетерогенного железа, который сожрёт гигаватт на перекомпиляции, либо потребует оплаты труда пары архитекторов для организации централизованного обновления). И стоит вспомнить о том, что 20-25% — нетипичный выигрыш, а вот проблем за счёт того, что тестирование продукта, скорее всего, производится разработчиками с выключенными оптимизациями, возможно огребсти.
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 какой попало, сервер СУБД тоже какой попало. Не удивительно, что оно всё вместе тоже работает как попало.
ЗЫ — проще дома в cgroups-nspawn всё запускать.
Я решил довериться профессионалам — мейнтейнерам Gentoo.
Уберут поддержку, пометят её как нерекомендуемую — пересоздам раздел (благо LVM), перекомпилирую ядро без BTRFS, перестану пользоваться.
Изначально было желание использовать Seafile: серверная часть реализована на C, он эффективен и стабилен.
Но выяснилось, что в бесплатной версии есть далеко не всё. В частности, не хватило интеграции с LDAP.
В бесплатной версии Seafile есть поддержка LDAP.
Собственно, про это говорилось. А для именно командного взаимодействия (работы групп в рамках проектов) имеется несколько другой класс систем.
Но выяснилось, что в бесплатной версии есть далеко не всё.
А можете описать, чего именно Вам нехватило в бесплатной версии?
Персональное облако