Или как используя NextCloud заменить сервисы Dropbox, Яндекс.Диск и Google.Drive на свой файловый хостинг без особых усилий.
Чем больше разрастается твоя команда, тем чаще возникает вопрос «где хранить данные?». Бесконечно разгуливать по общественным сервисам не получится: то сотрудник нужный уйдет, то цена повысится до невообразимых цифр. Или вообще ситуация с документами приобретёт более секретный характер.
Как быть?
Нуштож, представляю на суд общественности одно из самых лучших (и главное бесплатных, успевай платить за сервер) решений под названием NextCloud.
Важный дисклеймер
NextCloud не умеет нормально работать с большими файлами больше 4GB. Выяснено опытным путем, и к тому же яро подтверждается людьми с аналогичным мнением в комментариях GitHub проекта.
Если вам необходимо только загружать файлы и иметь личные+приватные папки, то поставьте Seafile. Серьезно.
Крик души и моих нервов
NextCloud это форк ownCloud. Cервер обмена файлами, который позволяет хранить личный (и не очень) контент, такой как документы, видео или фотографии. Файлы расположены в централизованном месте, во многом похожем на Dropbox. Отличие NextCloud в том, что все его функции с открытым исходным кодом. Это также даёт вам контроль и безопасность в управлении данных, тем самым устраняя необходимость использования стороннего сервиса.
Это если сухим языком. Переведя на человеческий получится следующий набор функций:
- Всё на вашем сервере. Лишний не увидит.
- Бесконечное количество аккаунтов.
- Можно выставлять лимиты на загружаемые данные.
- Высокий уровень безопасности. Всё таки за основу взято enterprise-решение ownCloud.
- Куча дополнительных модулей. В том числе аналог Zoom из коробки!
И многое другое. Всё перечисление функций можно посмотреть в этих ваших интернетах.
Установка
За основу в виде системы снова возьмём Ubuntu и snap. Простота и удобство в одном флаконе. Начинаем установку!
sudo snap install nextcloud
Иии… на этом с установкой всё. Да-да, никаких заморочек. Остаётся проверить работу:
snap changes nextcloud
В ответе должно быть что-то типа:
Output
ID Status Spawn Ready Summary
4 Done today at 16:12 UTC today at 16:12 UTC Install "nextcloud"
Подключаем диск
Если у тебя система на одном диске, а хранение всей помойки хотелось бы организовать на другом, то читай дальше.
Иначе ПРОПУСТИ ПУНКТ.
Приступим: допустим, у нас внешний диск находится по пути /mnt/storage/. Возьмём за пример и далее будем работать из под пользователя с рутправами.
Это важно.
sudo snap connect nextcloud:removable-media
sudo mkdir -p /mnt/storage/nextcloud/data
sudo chown -R root:root /mnt/storage/nextcloud/data
Данными командами сообщили приложению о внешнем диске, создали нужную папку для NextCloud и выдали права. Теперь переделаем установочный config-файл:
sudo nano /var/snap/nextcloud/current/nextcloud/config/autoconfig.php
# Ищем строчку 'directory'
'directory' => '/mnt/storage/nextcloud/data',
После изменений сохраняем изменения в файле и перезапускаем PHP:
sudo snap restart nextcloud.php-fpm
Внимание! Если при попытке зайти по IP-адресу вашего сервера появляется ошибка «Ensure there is a file called «.ocdata» in the root of the data directory.», то выполните следующую команду:
cd /mnt/storage/nextcloud/data
sudo touch .ocdata
Подключение домена
Опять же, если он у тебя есть.
Иначе ПРОСТО ПРОПУСТИ ПУНКТ.
По-умолчанию NextCloud запускается на IP-адресе и туда можно уже зайти. Для подключения домена необходимо добавить его в белый-лист, где «site.ru» имя домена:
sudo nextcloud.occ config:system:set trusted_domains 1 --value=site.ru
Подключение SSL
Let’s Encrypt
%текст временно не доступен%
CloudFlare
В лучшей статье о подключении можно найти тут: End-to-end шифрование и SSL для сервера через CloudFlare, где вместо пункта с настройкой NGINX делаем следующие действия:
sudo mkdir /var/snap/nextcloud/current/certs/custom
sudo cd /etc/ssl
sudo cp cert.pem key.pem chain.pem /var/snap/nextcloud/current/certs/custom
sudo nextcloud.enable-https custom -s cert.pem privkey.pem chain.pem
Далее пытаемся зайти в приложение через домен.
Создание администратора
Саму функцию можно выполнить зайдя на IP-адрес сервера или на домен. Веб-интерфейс поможет разобраться, он несложный.
А можно произвести создание через команду:
sudo nextcloud.manual-install ИМЯНАЛАТИНИЦЕ СЛОЖНЫЙПАРОЛЬ
Выводы
Остается полазить в настройках, сделать необходимые движения и действительно всё.
NextCloud повторяет возможности популярных облачных сервисов хранения данных. Контентом можно делиться между пользователями или извне с помощью общедоступных URL-адресов.
Преимущество NextCloud заключается в том, что информация надежно хранится в месте, которое вы контролируете (ну или вам сисадмин).
Для получения дополнительной функциональности загляни в магазин приложений через админку, там чего только нет.
Кстати, не только одним веб-интерфейсом едины. Существуют клиенты для всех популярных платформ: windows, macos, iOS, Android, linux. Кривоватые слегка, но чё ты еще хочешь от опенсурса. И них и так деняк нет.