«А не следует ли мне установить какое-то программное обеспечение, чтобы упростить сбор файлов на сервере, их очистку и открытие с телефона?» — подумал я, и тут все закрутилось! Хотя мои запросы были изначально скромными, я решил сначала проверить Nextcloud, персональную облачную платформу, которая не только заменяет Dropbox, но и выполняет множество других функций, включая работу с документами и загрузку торрентов и видео с YouTube.
В целом, первое, на что я обратил внимание, это более безобидные варианты, такие как Dropbox или Google Drive. Поместите один из них на сервер и позвольте ему синхронизировать папки с вашим компьютером, и вы можете открыть его на своем телефоне, если хотите. Но в этих сервисах не так много места для бесплатного, и вы совершенно не хотите платить за хранение одних и тех же файлов дважды — один раз за хостинг VPS, где хранятся ваши данные, и второй раз за Dropbox. И всегда лучше иметь что-то свое, правда?
Исследования показывают, что найти решение, которое было бы одновременно простым и не очень кустарным, не так просто. Но в любом треде на эту тему всегда появляются люди, которые определяют свое собственное облако или Nextcloud и сообщают о плавном и приятном полете на многие годы. И хотя я не фанат мега-комбайнов, мне показалось достаточно заманчивым попробовать их.
Обе программы представляют собой платформы, которые заменяют сам Dropbox и предоставляют возможность управлять файлами и обмениваться ими. Однако после установки плагины напоминают миниатюрную операционную систему. Здесь вы найдете почтовые программы для роли Gmail, совместные редакторы, такие как Google Docs, и календари с планировщиками, заметками, интеллект-картами и другими мыслями.
ownCloud после установки
В то же время ownCloud не новость. Nextcloud посвежее и развивается активнее: первый релиз состоялся в 2016 году, а текущая версия на момент написания — двадцатая.
После тщательного изучения обоих, я обнаружил, что Nextcloud можно назвать младшим братом ownCloud и братом, а не двоюродным братом. Сходства видны на каждом этапе, даже включая некоторые элементы интерфейса и имена файлов. Похоже, создатели Nextcloud, не долго думая, просто вытащили весь код из предшественника и приступили к его модернизации.
Обе компании базируются в Германии, поэтому история может быть более запутанной и рассказывать о расколе среди сотрудников ownCloud. Но мы ничего об этом не знаем, поэтому просто возьмите Nextcloud, как более модный, и приступайте к установке.
Установка
Детально раскатывание Nextcloud на своем сервере описано в документации, так что повторять ее мы не будем и только пробежимся по основным пунктам — чтобы ты представлял себе масштабы работ и не пропустил важные шаги, если решишь повторить мой путь.
Вот что потребуется сделать в общих чертах.
- Скачать и распаковать дистрибутив. Есть разные способы установки, включая пакеты для популярных дистрибутивов Linux и контейнер Docker, но то, как именно ты заполучишь Nextcloud на свой сервер, не так уж важно (по крайней мере, до первого обновления). Я выбрал самый топорный метод — просто скачал архив и распаковал его в папку
/
. Важно: права на файлы нужно передать пользователю www-data (var/ www/ chown
).-R www-data nextcloud - Убедиться, что в системе есть PHP и все нужные зависимости. Их достаточно много, чтобы завести какой‑нибудь Composer, но я просто поставил пакеты для нужной версии PHP из репозитория Ubuntu.
- Установить MySQL или другую поддерживаемую СУБД и по инструкции завести в базе пользователя с нужными правами. Настройку самой СУБД пока можно пропустить, но, если Nextcloud у тебя приживется надолго, стоит потом вернуться к этому.
- Установить и настроить веб‑сервер. Это может быть Apache или nginx — для обоих есть примеры конфигов, причем в случае с nginx, который выбрал я, — крайне подробные. Тебе потребуется поправить название сервера, путь к папке и, возможно, версию php-fpm. Кстати, убедись, что у тебя установлены php-fpm и php-mysql (или драйвер той БД, которую ты используешь).
- Получить SSL-сертификат. И в данном случае это важно — без HTTPS не все заведется как положено. Бесплатный серт Let’s Encrypt вполне подойдет, а Certbot его выдаст и добавит в конфиг веб‑сервера буквально парой команд.
Когда все будет готово, не торопитесь перезапускать сервер! Как только вы это сделаете, Nextcloud начнет показывать всему миру установщик, который теоретически может использовать каждый и стать вашим облачным администратором 🙂 Чтобы избежать этого, вы можете либо закончить процесс установки через командную строку или настройте веб-сервер так, чтобы он никого не пропускал. Авторизация (директива auth_basic) или белый список, который будет включать только ваш IP (директивы allow <IP> и deny all).
В любом случае, для работы с Nextcloud вам необходимо установить имя пользователя и пароль для учетной записи администратора, а также указать базу данных и ее учетные данные, которые вы создали. В общем, если вы уже установили WordPress или phpBB, вы определенно можете им управлять.
Интерфейс и приложения
После долгих приключений в темном подземелье консоли мы выбираемся на поверхность, к цивилизации. На первый взгляд все очень модно.
Дашборд!
Файловый менеджер с картиночками!
Журнал изменений!
Магазин приложений!
Точнее, подобие магазина, потому что денег здесь не берут, все только даром.
Поскольку разработчики в основном заменили Dropbox, общий доступ к файлам здесь прекрасен: вы можете получить внутреннюю ссылку, поделиться ею с другим пользователем или создать общедоступный URL-адрес. В последнем случае ссылка откроет предварительный просмотр, но если вы добавляете в конец /preview, то и сам файл.
Шейринг
Еще можно назначить пароль и указать время, по истечении которого ссылка работать перестанет.
Ограничение по времени
Но внимание, конечно, сразу перетягивает на себя магазин приложений. Всего аппликух ни много ни мало — 281 штука. Здесь есть всякие просмотрщики (например, для снимков в RAW, книжек в ePub, треков в GPX), музыкальные плееры, галереи для просмотра и публикации картинок, несколько видов таск‑трекеров и заметок, менеджер паролей и тому подобные вещи.
Вот, например, отличный редактор диаграмм на основе исходников Draw.io. Он устанавливается буквально с помощью одной кнопки, после чего вы можете создавать, открывать и редактировать файлы диаграмм.
Однако не ожидайте, что все ваши приложения будут установлены с помощью одной кнопки и будут работать безупречно, что предоставит Nextcloud новую захватывающую возможность. Навесное оборудование здесь очень разное — как по качеству, так и по требованиям.
Например, может потребоваться вручную установить что-то дополнительно на сервере, а приложение Nextcloud служит только интерфейсом. Итак, вы не можете просто взять и установить редактор документов Collabora одним щелчком мыши — вам нужен соответствующий сервер.
То же самое и с почтой. Программа с простеньким названием Mail — это только клиентская часть, и если вы хотите не только развернуть свой веб-почтовик, но и не зависеть от сторонних сервисов POP3 / SMTP / IMAP, то вам придется установить, настроить и обслуживать сервер самостоятельно. Разработчики рекомендуют использовать Mail-in-a-Box как самый простой в установке.
Также бывает, что приложениям требуется, например, определенная версия PHP или сам Nextcloud. В общем, вы не сможете забыть, что теперь вы сами себе администратор.
Торренты и youtube-dl
Вряд ли вы сегодня кого-то удивите торрент-клиентом с веб-интерфейсом, но приятно, когда загружаемыми файлами легко управлять. Youtube-dl, известная программа для получения видео с YouTube и многих других сервисов (включая Twitter, TikTok и даже Pornhub), вообще не имеет собственного графического интерфейса. Поэтому неплохо открыть страницу в браузере, ввести URL-адрес и получить файл, особенно если вы планируете использовать его с мобильного устройства.
ocDownloader
Первое, что я попробовал, это плагин ocDownloader, который можно найти в разделе «Утилиты». После установки перейдите в раздел настроек и в самом низу боковой панели слева найдите пункт Дополнительные настройки. Здесь появится раздел ocDownloader, а в нем — выбор программы, которая будет скачивать файлы — cURL или aria2. А если первый уже точно установлен, то со вторым придется повозиться. Но установив его, можно точно так же скачивать торренты.
www
Краткое руководство по настройке aria2 есть в ридми к ocDownloader.
Чтобы скачать видео с YouTube, вам нужно выбрать ocDownloader в верхней части Nextcloud, перейти на вкладку YouTube, вставить ссылку. Если youtube-dl установлен и доступен пользователю www-data, загрузка будет работать. Плагин действительно использует youtube-dl, чтобы получить прямую ссылку на видео и загрузить его с помощью выбранной вами программы. На практике это означает, что поддерживаются не все веб-сайты, которые может обрабатывать сам youtube-dl.
Второе ограничение — youtube-dl заработал только в паре с cURL, но не с aria2. Однако я так и не разобрался, что там творится и что пошло не так: зачем нужен кривой плагин с такими ограничениями, когда вместо aria2 можно использовать обычный youtube dl и трансляцию?
youtube-dl
Если вы хорошо поищете, окажется, что для youtube-dl есть веб-интерфейсы. Большинство из них являются форками одного и того же кода с разными модификациями. Самая продвинутая — версия пользователя katznboyz1. Установка описана в файле readme, но это всего лишь тестовый запуск Gunicorn.Для более надежного деплоя лучше использовать Gunicorn через веб‑прокси, в моем случае — nginx. Здесь все хорошо документировано, повторяться не будем.
После установки и настройки вы получаете удобный веб-интерфейс, из которого вы можете отправлять видео для загрузки, выбирать параметры, просматривать историю и даже подписываться на канал, чтобы видео периодически выгружалось и сбрасывалось. в указанной папке.
Мой скрипт выдавал ошибки при работе и по какой-то неизвестной причине он однажды полностью остановился при загрузке видео из Twitter, так что мне все еще приходится с этим бороться.Также существует похожий проект — youtube-dl-api-server, который вместо веб‑фронтенда предоставляет RESTful API. Подойдет, если ты собираешься заряжать видео на закачку через браузерные плагины или какие‑то самописные скрипты, а не веб‑интерфейс.
Transmission
Теоретически есть готовое приложение Nextcloud для Transmission, но, как и ocDownloader, у меня с ним дружба не сложилась. Покопавшись, я обнаружил, что автор плагина не беспокоился о каких-либо настройках или документации и обычно рекомендовал использовать созданный им контейнер Docker, который уже содержит Nextcloud и Transmission.
По некоторым причинам это может быть подходящим, но я выбрал свой собственный путь. Первым делом я установил и настроил transmission-demon (как это сделать в Ubuntu, вы можете прочитать в руководстве). Поскольку у него есть собственный веб-интерфейс, для Nextcloud нет необходимости в каких-либо плагинах.
Веб-интерфейс Transmission
Однако здесь возникает вопрос — как заставить Nextcloud видеть загруженные файлы? И вообще, я начал все это с самого начала, чтобы файлы, сгенерированные на сервере в результате скриптовой работы, можно было легко открывать с телефона и при этом не светить по всему Интернету.
Доступ к файлам и интерфейс для командной строки
Это может показаться неочевидным, но если просто взять и на уровне файловой системы сервера бросить файл в папку с данными Nextcloud, то Nextcloud этого файла не увидит. Причина проста — Nextcloud ведет свою базу данных и все метаданные заносит в нее. А то, что ты видишь в папке типа /
, — это что‑то вроде аттачей к письмам без самих писем.
Вы можете решить эту проблему с разных сторон, но в любом случае нужно убедиться, что папка, из которой вы хотите видеть файлы в Nextcloud, будет доступна пользователю www-data — в том числе для записи, если это необходимо.
Теперь нам нужно что бы Nextcloud, видел эту папку. Самый простой способ сделать это — использовать расширение поддержки внешнего хранилища. Подключите и активируйте его, после чего сможете перейти к его настройкам в разделе Administration (не Personal, где он тоже появится!).
Добавляем внешнее хранилище
Добавь хранилище типа Local и задай путь к папке. Если права настроены правильно, слева появится зеленая галочка, а сама папка отобразится в разделе Files.
Внешнее хранилище с точки зрения Nextcloud
Сами разработчики Nextcloud в документации описывают этот метод как не особо надежный. Папка сканируется только при открытии из пользовательского интерфейса, а глубина сканирования составляет всего три уровня.
Итак, пришло время познакомиться с инструментом OCC. Если вы активно используете Nextcloud, вы рано или поздно столкнетесь с этим.
info
Расшифровывается название утилиты как ownCloud Console, то есть ее название так и осталось от ownCloud.
OCC — это единый инструмент, с помощью которого вы можете делать многие вещи, которые обычно выполняются через веб-интерфейс Nextcloud.Удобно, если их вдруг понадобится автоматизировать и вызвать из скриптов. На сайте разработчика есть подробная документация по OCC.
Мы же остановимся на одной команде — files:scan. Если запустить ее, то Nextcloud проиндексирует содержимое своих папок и добавит записи о новых файлах в базу данных. Вызывать нужно так:
sudo -u www-data php occ files:scan --all
Вы можете просто взять эту команду и добавить ее в crontab, например, вызывая ее каждую минуту. Возникающая нагрузка невелика, но этот метод работает в железобетоне. Вам даже не нужно настраивать внешнее хранилище — просто поместите файлы в то же место, где Nextcloud хранит их сам.
Однако, если вам кажется, что это не изящное решение, вы можете попробовать настроить скрипт nextcloud-inotifyscan. У меня не получилось сделать это с наскока.
Мобильное и десктопное приложения
Говоря о Nextcloud, нельзя не упомянуть компонент, который работает на мобильном телефоне. Приложение неплохое, но набор функций минимален — эквивалент раздела Файлы. В нем вы можете передавать файлы туда и обратно, загружать их в память телефона, делиться ими, отправлять в другие программы. Есть встроенные просмотрщики, включая PDF и текстовый редактор.
Но все приложения, которые вы устанавливаете из магазина, останутся веб-ориентированными, и это, на мой взгляд, основная слабость Nextcloud как экосистемы. Однако никто не мешает просматривать веб-интерфейс с телефона.
Другая вещь, которой здесь не хватает и которая вполне могла бы присутствовать — это интеграция с операционной системой телефона (я говорю только об iOS — не было возможности протестировать версию Android). К сожалению, Nextcloud не появился как раздел в приложении «Файлы», как это делают Dropbox и Google Диск. Обидно, потому что я рассчитывал на такое поведение.
Примечательно, что эта функция присутствует в ownCloud, а также есть интерфейс для Shortcuts, системы автоматизации iOS. Однако все это доступно только в платных версиях, что серьезно портит картину.
Что мне понравилось, так это возможность закрыть доступ к приложению и войти в систему через биометрические данные, встроенные в систему — датчик отпечатков пальцев или распознавание лиц.
Также есть программа для десктопов (Windows, Linux, macOS). Она синхронизирует выбранные папки между облаком и жестким диском и напоминает клиента любого аналогичного сервиса — с той небольшой разницей, что вам нужно будет указать адрес вашего сервера.
Настройка синхронизации
Папка Nextcloud
Приватность и безопасность
Использование Nextcloud для повышения безопасности с точки зрения защиты ваших данных от взлома — сомнительная идея, по крайней мере, если вы не готовы предоставить дополнительные меры защиты. Прежде всего, ограничьте доступ с помощью VPN или другого метода и постоянно обновляйте все программное обеспечение.
Увы, на практике любые ограничения доступа начинают спорить с удобством, а техническая поддержка — это не то, что вам следует делать раз в год в первый день отпуска — по крайней мере, если защита является вашим приоритетом. Получается, что ваш сервер или одно из приложений взломают намного быстрее, чем, например, Gmail.
Но если вас раздражает мысль, что тот же Gmail собирает ключевые слова в ваших электронных письмах для таргетинга вашей рекламы, Nextcloud определенно поможет вам избавиться от этого неприятного ощущения. Но — ценой некоторой работы и отказа от многих фич.
Если вы боитесь перемещать свои данные в то или иное состояние … Я вас здесь не учу! Nextcloud может быть или не быть одним из ваших инструментов, но шифрование определенно будет другим.
Максимально параноидальным требованиям Nextcloud все равно не удовлетворяет, по крайней мере если ты планируешь пользоваться мобильным приложением. Его исходников, в отличие от исходников самого Nextcloud, никто не видел, и если разработчики захотят собирать какую‑то статистику, то в теории у них для этого будет возможность.
Об установке всяких левых приложений одной кнопкой, кстати, тоже можешь забыть, если серьезно заботишься о приватности и безопасности. Чем больше кода, написанного энтузиастами и не прошедшего никаких аудитов, ты поставишь на свой сервер, тем больше возможностей для протечек и пробоин.
Итоги
Конечно, запускать Nextcloud — удовольствие на любителя. Если вы планируете развернуть такую экономику, нужно сразу подготовиться к тому, что здесь приложения в основном являются бледными копиями аналогичных коммерческих сервисов и уступают им как по удобству, так и по функциональности, а иногда и по надежности.
Однако, помимо повышения конфиденциальности, есть и другие аргументы в пользу Nextcloud и тому подобного. Один из них — экономия. Например, я использовал свободное пространство, которое получил от хостера вместе с экземпляром VPS. Сервер также может быть дома, иметь доступ к NAS с подключенных жестких дисков или через локальную сеть. Тогда цена за гиг намного ниже.
И, наконец, если вы, как и я, являетесь энтузиастом любой персональной автоматизации и имеете множество сценариев и рабочих процессов для различных действий, то вы наверняка сами поймете, зачем вам все это!
1 comments On Настройка персонального облака в Nextcloud
Спасибо за статью! Скажите, как вы оцениваете продукт onlyoffice group (open source), с точки зрения безопасности? Мы считаем их облачный офис лучшим на рынке. Переход совершили с synology продукта. До этого пользовались google drive/suite (таблицы у гугла при этом до сих пор считаем лучшим решением что есть из электронных таблиц). К сожалению у synology офис не дотягивает до современных стандартов, а политика лицензирования пользователей на mailplus server весьма высока. Жаль, но Synology не сделали подходящего веб клиента, для работы с внешним почтовым сервером. Например такой есть у qnap mailagent.
Нам в onlyoffice также понравился webmail client. Он умеет открывать вложения сразу, сохранять в файловом хранилище. Умеет фильтровать почту, группировать письма. А ещё можно делать общие разделы контактов между пользователями и они определяются в вебмэйл клиенте. На сегодня мы не знаем чего-то из веб клиентов лучше для частного сервера. Rainloop, Roundcube, sogo и т.п. продукты проигрывают в функциональности, либо уже давно морально устарели, как и офлайн клиент thunderbird.