Гайды

Свой собственный сервис облачного хранилища. Установка и настройка.

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

Долгое время мы использовании Яндекс Диск и это было дико удобно. Покупаешь такой за 190 руб./мес. 1 ТБ места (считай – бесплатно) и радуешься. При том, что в нашем случае, облако — это не только документики, мы используем облачные хранилища по максимуму: это и исходники дизайн-макетов, и вся бухгалтерия, материалы для разработки веб-сайтов, отчеты для клиентов. Более того, в облаке у нас хранились все резервные копии и записи с камер видеонаблюдения.

Но со временем, Яндекс Диск начал сильно напрягать:

1. Когда-то, очень давно, можно было купить необходимое кол-во места, расшарить нужную папку и все могли использовать общее пространство для загрузки. Сейчас же лимит на загрузки устанавливается индивидуально для каждого пользователя, т.е., для комфортной работы 12 человек в команде необходимо тратить в месяц не 190 руб./мес., а 2 280 руб./мес.

2. Яндекс Диск в свое время был убийцей всех хранилищ, к нему можно было подключаться по WEB DAV и работать с виртуальными серверами как по FTP, при этом ценник на 1 Гб места был в разы дешевле любого VDS или Object Storage. На Я.Диске мы хранили все бэкапы веб-приложений и сайтов по бросовой цене. Примерно год назад ISP Manager выпилили поддержку бэкапов на Яндекс Диск (а позже и на другие облачные хранилища).

3. В целях обеспечения безопасности, одно время на тот же Я.Диск мы грузили все файлы из системы видеонаблюдения. Файлы за 1 неделю в FullHD с двух камер занимают как раз примерно 500 Гб. Но и тут нас “заметили”, Linux-приложение, которое прекрасно работало пару месяцев, после обновления перестало грузить записи, т.е. оно стало проверять есть ли изменения у файлов в конкретной папке. И только если в течении нескольких минут ничего не изменялось, не добавлялось – запускается синхронизация. Естественно, как минимум 2 файла в папке с записями обновляются ежесекундно, соответственно пока не отключишь запись – ничего в облако улетать не будет.

Корпоративные решения не имеют подобных проблем, но стоят не соизмеримо дороже, поэтому мы начали поиск self-hosted решений. Для меня были важны следующие факторы:
– Мобильное приложение. Крайне часто в разъездах приходится что-то подсмотреть – бухгалтерские документы, кому-то скинуть бэкап или исходники для видео.
– Нормальная синхронизация. Чтобы она работала быстро, чтобы корректно отрабатывала ситуации, когда одновременно 2 человека работают с файлом или когда у кого-то внезапно отвалился интернет.
– Работа с FTP/SSH/WebDAV.

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

 

Что мы получили в итоге?

1. Бесплатный сервер, под который был использован компьютер, подготовленный на помойку (AMD Phenom II X4 945, лол) и пара жестких дисков, которых ждала та же участь, после того как цены на SSD практически упали до обычных жестких дисков. И вот уже год этот старичок трудится без каких-либо нареканий, тихо себе пыхтя в серверной.

2. Несравнимо высокая скорость работы внутри локальной сети. Даже на самом быстром интернете файлы с Яндекс Диска у меня качаются со скоростью не выше 1 МБ/с, но т.к. Nextcloud расположен в локальной сети, то его скорость зависит от пропускной скорости локалки. Даже с нашими самыми нищими коммутаторами скорость загрузки стабильно 12 МБ/с. В гигабитной сети и с SSD диском скорость, естественно, будет выше.

3. Используя небольшую хитрость (очищая кеш Nextcloud) его можно использовать и для FTP-хранилища, на которое будут сливаться бэкапы сайтов, записи с камер наблюдения и всё что душе угодно.

Ну и пошаговая инструкция для чайников, как поднять своё облако (хоть для работы, хоть для дома)

 

Установка и настройка Nextcloud

Первым делом нам потребуется компьютер, который будет выполнять роль сервера. Nextcloud рекомендуют 2-ядерный процессор и 16 ГБ ОЗУ (у нас он прекрасно себя чувствует и с 6 ГБ).

Устанавливаем на него Linux – для тех, кто впервые с ним сталкивается – я рекомендую ставить Linux Mint, его интерфейс будет максимально близок к привычной всем винде.

Переходим на сайт дистрибутива: https://www.linuxmint.com/download.php и качаем версию Cinnamon.

После загрузки, скачиваем и запускаем утилиту WinSetupFromUSB: http://www.winsetupfromusb.com/downloads/

В первом поле выбираем флешку, на которую будем записывать дистрибутив, а в поле “Linux ISO/Other Grub4dos compalible ISO” указываем пусть до скаченного дистрибутива Linux Mint, запускаем процесс создания загрузочной флешки и после того как увидим всплывающее окно “Done” вставляем эту флешку в компьютер. на который будем устанавливать Nextcloud.

Загружаемся с флешки, указываем всю информацию, которую от нас просит установщик.

Для того, чтобы можно было подключиться к своему облаку не только в локальной сети, но и из интернета – нужно пробросить порты. В случае с домашним интернетом – стоит приобрести выделенный IP адрес у провайдера.

Далее, к Nextcloud можно будет подключиться либо по IP, но для удобства мы будем использовать домен. Регистрируем доменное имя или создаем нужный субдомен для уже существующего домена, в DNS-редакторе добавляем А-запись с вашим ip-адресом. Процесс регистрации и настройки домена описан тут.

Далее, на компьютере с Linux запускаем терминал, с помощью которого и будет происходить установка Nextcloud.

Сам процесс установки отлично описан здесь: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-nextcloud-on-ubuntu-18-04-ru

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

Далее, необходимо произвести настройку роутера, чтобы пробросить порты. В нашем случае используется роутер Mikrotik, для него необходимо создать 2 правила в Firewall (для подключения по HTTP и HTTPS):

В случае с другими роутерами – заходим в Google и пишем “название вашей модели роутера” + “проброс портов”

Ищем видос школьника, который открыл сервер по Майнкрафту и повторяем действия за ним.

Ну и лайфхак для тех, кто хочет загружать фалы в Nextcloud по FTP: https://lowdigital.ru/kopirovanie-dannyh-v-nextcloud-po-ftp/

Может заинтересовать

Популярное