Как сделать облачное хранилище на своем сервере


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

Но что если Вы не хотите доверять сохранность своих файлов и личных данных сторонним компаниям, или не хватает бесплатного облачного пространства и цена за увеличенный объем не устраивает? Если у вас есть домашний сервер, то его можно использовать как облако, к тому же объем такого облако будет ограничен лишь вместительностью вашего жесткого диска. Правда домашний сервер должен работать постоянно и иметь стабильный доступ к интернету.

Для развертывания своего облака нам понадобиться:

  • Домашний, либо любой другой сервер, с:
    • установленной ОС Linux;
    • связкой из веб-сервера Apache или Nginx, PHP (желательно 7-й версии), MySQL;
    • жестким диском желаемого объема.
  • Стабильный интернет, с наличием:
    • открытых портов (нам понадобиться как минимум 80-й порт);
    • белого статического или динамического IP-адреса.
  • Доменное имя.

В качестве программного обеспечения для облака будем использовать Nextcloud (ранее назывался Opencloud). Это набор из сервера и клиентов синхронизации под разные платформы с открытым исходным кодом. Имеет обширный функционал, который также можно расширить благодаря сторонним приложениям под данную платформу. По интерфейсу очень схож с Dropbox.

Для начала нужно сделать так, чтобы доменное имя ссылалось на наш сервер. Если у Вас статический IP, то лучше всего купить домен, и вписать в A запись IP адрес, можно сделать отдельный поддомен для облака, как в моем случае, например cloud.localhost.co.ua. Если у Вас динамический IP, то Вам придется использовать DDNS сервис.

Теперь перейдем непосредственно к процессу установки. Для начала переходим на официальный сайт проекта и копируем прямую ссылку на архив с последней версией Nextcloud.

Теперь подключаемся к серверу по SSH, переходим в корневой каталог веб-сервера. Если нужно создаем дополнительные папки для Nextcloud. Например, у меня корневой каталог веб-сервера /var/www, а в нем я создам папку cloud, в которой будет каталог html с файлами веб-интерфейса. В папке cloud также будут логи access.log и error.log.

ssh {имя пользователя}@{IP адрес сервера}
cd /var/www
mkdir cloud
cd cloud
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.4.zip
uzip nextcloud-13.0.4.zip
mv nextcloud html

Теперь создадим конфигурацию виртуального хоста для веб-сервера. Я использую Apache2, создать новый конфиг можно следующей командой:

sudo nano /etc/apache2/sites-available/cloud.conf
<VirtualHost *:80>
  ServerName cloud.localhost.co.ua
  ServerAlias cloud.localhost.co.ua
  ServerAdmin [email protected]
  DocumentRoot /var/www/cloud/html

  ErrorLog /var/www/cloud/error.log
  CustomLog /var/www/cloud/access.log combined

  <Directory /var/www/cloud/html>
    Options FollowSymLinks MultiViews
    AllowOverride All
    Allow from all
    Order allow,deny
    Require all granted
  </Directory>
</VirtualHost>

Теперь нужно включить только что созданный виртуальный хост, для Apache2 это делает команда:

sudo a2ensite cloud

Для того чтобы изменения вступили в силу, перезагрузим веб-сервер.

sudo /etc/init.d/apache2 restart

Затем выставим владельца и права на директорию с Nextcloud Server.

sudo chown -R www-data:www-data /var/www/cloud
sudo chmod -R 755 /var/www/cloud

Теперь нужно создать новую базу данных для хранения настроек Nextcloud, под отдельным пользователем с доступом только к этой базе данных. Если Вы новичок, это лучше сделать через phpmyadmin. В браузере переходим по адресу http://ip-вашего-сервера.домен/phpmyadmin

Вводим логин и пароль от суперпользователя, переходим на вкладку «Учетные записи», под таблицей нажимаем на ссылку «Добавить учетную запись пользователя». Вводим имя учетной записи, придумываем или генерируем пароль. В обязательном порядке необходимо поставить две галочки в пункте «База данных для учетной записи пользователя», для того чтобы вместе с пользователем создалась база данных с таким же именем и всеми правами. Для подтверждения, листаем страницу вниз, жмем «Далее».

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

Затем вводим путь к каталогу, где мы планируем хранить файлы пользователей. При установке операционной системы я смонтировал раздел жесткого диска на 1 Tb в каталог /mnt/data. В нем я советую создать отдельную папку для данных из облака, и уже в ней хранить информацию (например /mnt/data/nextcloud). С точки зрения безопасности, не рекомендуется хранить данные в одном из подкаталогов веб-сервера.

Ниже вводим данные для подключения к базе данных. В моем случае имя пользователя и базы данных совпадают.

После завершения установки, мы попадем в интерфейс нашего личного облачного хранилища.

На этом можно было бы и завершить статью, но давайте разберемся какие преимущества и недостатки имеет наше собственное облако по сравнению с готовыми решениями.

Начнем с преимуществ:

  • Большое дисковое пространство, ограниченное вместительностью Вашего жесткого диска;
  • Конфиденциальность данных, так как сервер подконтролен только нам;
  • Возможность создания нескольких пользователей, с определенным лимитом дискового пространства и ограниченными правами на общие файлы и папки;
  • Возможность легко делиться файлами по ссылкам, не заливая их на сторонние файлообменники с кучей рекламы;
  • Возможность дополнить функционал приложениями, например можно держать в облаке список контактов, личный календарь, даже защищенное хранилище паролей;
  • Наличие готовых приложений для синхронизации файлов под все десктопные платформы. Также имеются клиенты для синхронизации файлов, контактов и календаря с мобильным устройством пользователя. Можно также настроить автоматическую выгрузку фотографий с камеры в облако (прямо как в Google Диске).

Но есть и определенные недостатки. Они не столь критичны, но их надо иметь ввиду:

  • Необходимо иметь свой сервер, обеспечить его бесперебойную работу и наличие стабильного интернет соединения;
  • Ответственность за безопасность и сохранность своих данных несете только вы. Обязательно нужно задуматься о резервных копиях на случай выхода из строя жесткого диска. Также необходимо следить за безопасностью сервера, регулярно устанавливать обновления безопасности;
  • Не стоит нагружать свою сборку Nextcloud большим количеством сторонних приложений. Это может снизить стабильность работы облака. Желательно использовать приложения от разработчиков Nextcloud;
  • Невозможно использовать Nextcloud в паре с сервером Samba в локальной сети «из коробки». Так как Nextcloud индексирует все файлы в каталоге с данными и заносит их в базу данных для более быстрой работы. А еще такой подход нужен для отслеживания событий над файлами и управления версиями.

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

В любом случае всем советую попробовать использование и администрирование личного облака, так как преимущества на лицо. Желаю Вам в этом успехов.

ShiftHackZ

ShiftHackZ

Автор блога LocalHost // Blog. Интересуюсь компьютерными технологиями, системным администрированием и веб-разработкой. Днями напролет провожу время за своим компьютером и самосовершенствуюсь. Подробнее

Читайте также:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *