Войти

Или войди с помощью

Как сделать своё облачное хранилище файлов. И не платить за него

Владимир Кузин avatar |
Как сделать своё облачное хранилище файлов. И не платить за него

Месяц назад я рассказывал о препарировании старенького Mac mini 2007 года. Моя цель — сделать собственный сервер и отказаться от облачных хранилищ, вроде iCloud, Google Drive, Dropbox и прочих.

После пропайки нового разъема с резистором нагрузки Mac mini исправно работает. За последний месяц он ни разу не выключался, выполняя роль домашнего FTP-сервера с внешним доступом.

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

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

Что ж, приступим к созданию собственного сервера.

Предварительная подготовка

Накатываем Linux

Так случилось, что мой Mac mini был с нерабочим DVD-Rom. После безуспешных попыток запустить систему и часов, потраченных на форматирование загрузочных флешек, мне удалось выяснить кое-что интересное.

Не все Mac mini и старые Mac поддерживают установку с флешки.

У меня как раз такой случай.

Установить DVD-Rom от старенького ноутбука HP не удалось — разъемы не совпадают. Искать донора или аналогичный привод не было желания.

Решение было следующим. Я достал 2,5'' винт Mac mini, установил его в ноутбук на базе Windows. Загрузил дистрибутив Linux Debian (можно сделать это вот здесь), развернул образ на флешку и установил на HDD от Mac mini.

Потом HDD с уже накатанной Linux поставил обратно в Mac mini, включил и все заработало.

Linux неприхотлива к железу. Wi-Fi, Ethernet, графика — все заработало после первого запуска.

Все, теперь у Mac mini есть работающая операционка и можно приступать к дальнейшей настройке.

Покупаем «белый» IP

Без этого никак. Вам понадобится так называемый «белый» IP-адрес. То есть такой айпишник, который будет закреплен конкретно за вашим роутером.

Чтобы его получить, звоним провайдеру и просим активировать «белый статический IP-адрес». Обычно стоимость месяца такого IP не более 100 – 150 рублей.

Увы, бесплатно держать свой сервер не выйдет. Зато вы можете наращивать емкость собственного хранилища, но при этом не платить заоблачные цены за гигабайты в облаке.

Время активации зависит от провайдера. У меня был белый IP уже через 30 минут после звонка провайдеру.

Пробрасываем порты

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

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

Указываете домашний IP-адрес. На него поступает запрос, а дальше он должен связаться с вашим домашним сервером, «постучав» на конкретный сетевой порт.

Данная настройка зависит конкретно от вашей модели роутера. Логичнее будет почитать про проброс портов конкретно на ваш роутер отдельно. У меня этот пункт настроек выглядит так:

Я просто активировал DMZ (доступ к общедоступным сервисами) и прописал IP-адрес Mac mini в локальной сети.

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

Настраиваем сервер на базе Nextcloud

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

Хочется получить нормальный мобильный клиент, автоматическую синхронизацию и красивую оболочку.

Лучший вариант для всего этого — решением от Nextcloud.

Nextcloud — это как раз-таки специально разработанный комплекс для создания серверов с регулируемыми уровнями доступа для разных клиентов в рамках корпоративной сети. Но он позиционируется и как удобный инструмент для создания домашнего сервера.

Что ж, приступим к установке Nextcloud на наш Mac mini.

Шаг 1. Запускаем терминал в Linux Debian на Mac mini. Можно вводить все команды как на самом будущем сервере, так и воспользовавшись SSH из Терминала вашего MacBook или другого рабочего компьютера.

Для подключения по SSH необходимо ввести следующую строчку:

ssh ВАШ-БЕЛЫЙ-IP-АДРЕС

Затем указать пароль администратора в системе Linux (на нашем сервер).

Вводим следующую команду:

su apt update

Затем устанавливаем сервер MariaDB:

su apt install mariadb-server -y

Дожидаемся загрузки и установки всех пакетов.

Теперь проверим статус установленного сервера:

sudo systemctl status mariadb

Видим статус active, значит все в порядке.

Чтобы выйти нажимаем Q. Продолжаем настройку.

Шаг 2. Проверяем версию MySQL, указав следующую команду:

mysql -V

Теперь настроим систему управления базами данных MySQL под работу сервера Nextcloud. Вводим:

mysql -u root -p

На запрос пароля введите либо ваш пароль администратора, либо просто нажмите Enter.

Шаг 3. Теперь нам предстоит прописать серию команд для создания базы данных под Nextcloud. Вводим:

CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Нажимаем Enter и получаем ответ: Query OK, 1 row affected (0.00 sec). Продолжаем ввод команд:

GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'ПРИДУМАТЬ_ПАРОЛЬ';

Enter. Дальше:

FLUSH PRIVILEGES;

Enter. Дальше:

EXIT;

Готово. База данных MySQL создана.

Шаг 4. Время установить PHP. Вводим следующую команду.

su apt install software-properties-common жмем еnter

su add-apt-repository ppa:ondrej/php

Жмем еще раз Enter после выполнения последней команды. Дожидаемся окончания установки.

Ставим Apache. Вводим такую строчку:

su apt install apache2 php7.1 php7.1-gd php7.1-json php7.1-mysql php7.1-curl php7.1-mbstring php7.1-intl php7.1-mcrypt php7.1-imagick php7.1-xml php7.1-zip libapache2-mod-php7.1

Подтверждаем действие, нажав Y и Enter. Дожидаемся установки всех пакетов.

Настроим Firewall. Вводим:

su ufw allow 'Apache Full'

Теперь приступаем к загрузке Nextcloud. Меняем директорию:

cd /tmp нажимаем Enter

wget https://download.nextcloud.com/server/releases/nextcloud-14.0.0.tar.bz2

Жмем Enter. Ждем окончания загрузки. Вводим:

tar xf nextcloud-14.0.0.tar.bz2

Раскрываем список файлов:

ls

Перемещаем Nextcloud в «правильную» папку:

su mv /tmp/nextcloud /var/www

Все, Nexctloud перемещен в корневую директорию нашего HTTP-сервера. Вводим еще одну команду:

su chown -R www-data: /var/www/nextcloud

И редактируем файл конфига Apache:

su nan /etc/apache2/conf-available/nextcloud.conf

Содержимое данного фала должно быть следующим:

Alias /nextcloud "/var/www/nexctloud/"

<Directory /var/www/nextcloud/>

Options +FollowSymlinks

AllowOverride All


<IfModule mod_dav.c>

Dav off

</IfModule>


SetEnv HOME /var/www/nexctloud

SetEnv HTTP_HOME /var/www/nextcloud

</Directory>

Если подобного текста нет — копируем и вставляем его в файл конфига и нажимаем CTRL + O для сохранения. Жмем Enter.

Остается включить несколько конфигурационных файлов. Ниже серия команд, которые следует вводить поочередно. Нажимаем Enter после каждой команды и дожидаемся выполнения.

su a2enconf rewrite

su systemctl reload apache2 (вводим пароль)

su a2enmod rewrite

su a2enmod headers

su a2enmod env

su a2enmod dir

su a2enmod mime

su systemctl reload apache2

Готово. Настройка Nextcloud окончена.

Краткая настройка Nexctloud

Открываем браузер и вводим адрес нашего белого IP, дописав /nextcloud. То есть во так:

80.23.23.223/nextcloud указываете ваш IP вместо предложенного

И видим окно, показанное на скриншоте выше.

Задаем пароль для пользователя Admin. Попадаем в веб-интерфейс нашего сервера.

Рассказать о всех тонкостях настройки серверного решения Nextcloud в одном материале невозможно. Главное, что следует сделать — скачать мобильный клиент для Android или iOS.

Авторизоваться в нем можно, указав ваш IP-адрес сервера и добавив /nextcloud. Вводите созданное имя пользователя и пароль.

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

Nexctloud позволяет полностью отказаться от облачных решений вроде Dropbox и iCloud. И главное, вы знаете, что ваши файлы всегда доступны только вам и вашим близким.

Хорошего пользования;)

70
undefined
iPhones.ru
Запасаемся попкорном и готовимся к борьбе за облачную независимость.

Войди и оставь комментарий

Или войди с помощью

<- Назад Забыли пароль? Войти
  1. sdix avatar
    sdix 26 декабря 2018
    4

    Заголовок статьи не правда

    tov.Polkovnik avatar
    tov.Polkovnik26 декабря 2018
    0

    @sdix, почему же?

    Владимир Кузин avatar
    Владимир Кузин26 декабря 2018
    3

    @tov.Polkovnik, 40 руб за IP все-таки платить, эх….

    tov.Polkovnik avatar
    tov.Polkovnik26 декабря 2018
    0

    @Владимир Кузин, потому и уточняю: у меня айпи изначально белый без доплаты.

    DastarD avatar
    DastarD27 декабря 2018
    2

    @tov.Polkovnik, что за выражение такое «белый ip»?! С хренов он белый? Бывают других цветов? Красный там, может фиолетовый? Я бы взял именно такой… Или это из сериалов про хацкеров взламывающих пентагон?

    tov.Polkovnik avatar
    tov.Polkovnik27 декабря 2018
    2

    @DastarD, устоявшееся выражение. Идиома, если хотите. Что вам не нравится? Хотите, называйте его выделенным оператором вешним IP-адресом, доступным из глобальной сети, но свои предъявы засуньте подальше.

    tr1GGr avatar
    tr1GGr28 декабря 2018
    0

    @DastarD, :D :D :D
    А Вы в автомастерской не допытывались с хренов-то у них ход холостой, есть ли у него невеста и когда он женится?
    Белый IP – это так называемый, “выделенный”, “статический”, “внешний” IP. Уникальный на весь интернет адрес, который находится в предназначенном для таких целей диапазоне адресов, присваивается лично Вашему каналу, и любые Ваши действия в глобальной сети происходят “от имени” этого IP. Он виден любому устройству/ресурсу, к которому вы обращаетесь. По нему Вас идентифицируют.
    Распределение таких IP согласовывается централизовано по планете и они не повторяются. С любой точки Земли, обратившись к этому IP адресу, Вы попадете именно в свою сеть.
    Не белый IP, называют “внутренним” или “динамическим”. Это IP, который Вам присваивает провайдер в своей внутренней сети, только для своих внутренних коммуникаций. Когда Вы обращаетесь к сайту, ваш запрос попадает сначала к провайдеру, там у запроса меняется IP, на внешний, от провайдера и после этого он (запрос) уходит “в мир” с IP-адресом провайдера. Теоретически, внутренний IP может быть вообще какой-угодно (в рамках правил сетевого протокола). Хоть 1.2.3.4 Но там тоже есть свои диапазоны, которыми по общему соглашению пользуются для внутренних IP, чтобы не пересекаться с внешними.
    Попасть на внутренний IP из другой сети в интернете можно только через внешний IP провайдера. При чем на оборудовании провайдера специально еще нужно настроить возможность такого соединения.

    Pulse avatar
    Pulse29 декабря 2018
    0

    @tr1GGr, белый ip может быть и динамикой, и статикой.
    а то, что вы расписали как “не белый, динамический” – это серый ip, который за NAT-ом провайдера ;)

    EmoCoder avatar
    EmoCoder26 декабря 2018
    4

    @tov.Polkovnik, потому что не учтена стоимость содержания этого всего и при этом не обеспечивается тот же уровень отказоустойчивости.

    Владимир Кузин avatar
    Владимир Кузин26 декабря 2018
    0

    @EmoCoder, 400 Вт света при потреблении в 20-30 Вт (это для Mac mini, не говорю об одноплатных компах) — не смешите.

    EmoCoder avatar
    EmoCoder27 декабря 2018
    0

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

    veronikamailad avatar
    veronikamailad26 декабря 2018
    1

    @EmoCoder, идея то правильная. Описанная реализация, да хилая, но тут уж каждый сам мастерит. Главное и самое бесценное – твои данные физически находятся у тебя, а не у неких неизвестных ублюдков которые могут сделать с ними все что им взбредёт в голову.

    serj007 avatar
    serj00727 декабря 2018
    2

    @veronikamailad, это не гарантирует безопасность! Тем более если у вас есть что-то ценное…. У моего брата с такого сервера всю бухгалтерию увили и пришлось платить 10 биткоинов

    veronikamailad avatar
    veronikamailad28 декабря 2018
    0

    @serj007, если бы были соблюдены элементарные нормы безопасности ( скрытый фактический ip сервера, шифрованный массив, бэкап ), то все было бы цело. Или … 10 битками вы бы уже не отделались. 8(=)

    tov.Polkovnik avatar
    tov.Polkovnik26 декабря 2018
    0

    @EmoCoder, щито? Отказоустойчивость – зеркальный рейд, электричество – вопрос вообще вне обсуждения. Ещё какое обслуживание? С нуля это можно сделать не дороже, чем за 10к и сразу на пару терабайт, что приблизительно равняется стоимости нормального облака с той же емкостью за год.
    Короче: то, о чем вы говорите, ну просто смешно.

    baxtep2 avatar
    baxtep227 декабря 2018
    0

    @tov.Polkovnik, потому что – это не облачное и не хранилище. Это безоблочное хоронилище. Ни резервирования ни бэкапов…

    tov.Polkovnik avatar
    tov.Polkovnik27 декабря 2018
    0

    @baxtep2, формально – это все же облачное хранилище, просто с никакой отказоустойчивостью.

    baxtep2 avatar
    baxtep227 декабря 2018
    1

    @tov.Polkovnik, что вы называете облаком? Это просто комп доступный по сети Интернет.

    Войди на сайт, чтобы ответить
    Ответить
  2. sherba800 avatar
    sherba800 26 декабря 2018
    5

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

    Войди на сайт, чтобы ответить
    Ответить
  3. windj avatar
    windj 26 декабря 2018
    2

    Покупаешь таймкапсулу на 3ТБ, запускаешь, настраиваешь удалённый доступ (уже не помню как делается, по-моему ставишь галочку в настройках), заказываешь белый ip адрес. Всё.
    Есть минус. Винт постоянно норовит уйти в режим ожидания, а возвращается из него секунд пять.

    Войди на сайт, чтобы ответить
    Ответить
  4. iVedro avatar
    iVedro 26 декабря 2018
    12

    Synology или Qnap покупаешь и все

    Войди на сайт, чтобы ответить
    Ответить
  5. Bigbox1981 avatar
    Bigbox1981 26 декабря 2018
    6

    Synology и все, и недорого)

    kudesnik avatar
    kudesnik27 декабря 2018
    1

    @Bigbox1981, собственно на авито не 2-х дисковые серваки рублей за 10. И как ниже народ писал. Никаких белых Ip все через квикконнект. А самое главное человеческие клиенты для работы с данной техникой на IOS. Одна из постоянно используемых фич Авто копирование фотографий на сервак когда приходишь домой. Сам сливает фото за день.

    Войди на сайт, чтобы ответить
    Ответить
  6. kastryulya avatar
    kastryulya 26 декабря 2018
    2

    Главное тут Mac mini а облако так приплели, оно хомякам не по зубам .

    Войди на сайт, чтобы ответить
    Ответить
  7. Дмитрий Скворцов avatar
    Дмитрий Скворцов 26 декабря 2018
    1

    Малина с системой на 1тб хдд, белый адрес, клиент Remite File manager на всех айфонах семьи и вуаля, свое облако для всех членов семьи. Поехали в отпуск – все скидывают контент в папку отпуска, дома через ac роутер быстро все чистишь с ноута или компа и гуд) от приложения Фото пришлось отказаться, его невозможно вести в срезе семьи. Теперь все лежит по папочкам файлами, что оказалось тоже удобной штукой)

    Владимир Кузин avatar
    Владимир Кузин26 декабря 2018
    1

    @Дмитрий Скворцов, Шикарное решение, Дмитрий! Тоже присмотрюсь на будущее.

    sottedsailor avatar
    sottedsailor26 декабря 2018
    1

    @Дмитрий Скворцов, что такое “малина”?)

    Владимир Кузин avatar
    Владимир Кузин26 декабря 2018
    0

    @sottedsailor, одноплатный компьютер Raspberry Pi

    tov.Polkovnik avatar
    tov.Polkovnik26 декабря 2018
    2

    @Дмитрий Скворцов, что будете делать, когда ХД накроется? Я к тому, что лучше зеркальный рейд мутить, желательно с хот подключением.

    Дмитрий Скворцов avatar
    Дмитрий Скворцов27 декабря 2018
    0

    @tov.Polkovnik, эт да, приходится периодически делать копию…:( зато все примитивно и просто, точек отказа нет)

    Mr.Kot avatar
    Mr.Kot27 декабря 2018
    3

    @Дмитрий Скворцов, Если честно, вся эта Ваша система состоит из сплошных точек отказа :)
    в Вашей системе:
    1) один HDD
    2) одна малина, считаем один контроллер, который также может “накрыться ландышем” (хоть это и наименее вероятно. но возможно)
    3) один блок питания, который традиционно считается расходником.
    4) один подвод питания (электричество в доме вырубили?)
    5) подозреваю, что один канал Интернет с одним “белым” IP адресом

    Не умаляя достоинства решения “стоимость”, по всем остальным критериям данное решение – скопище точек отказа. В отличие, как раз, от публичных облачных решений, где нет ни одной из перечисленных мной точек отказа и по всем перечисленным мной пунктам имеется redundancy.

    veronikamailad avatar
    veronikamailad28 декабря 2018
    0

    @Mr.Kot, за исключением возможности обнуления массива пользователя. Без предупреждения, объяснений и каких либо юридических последствий. Просто потому что владельцу/работнику облака так захотелось.

    Mr.Kot avatar
    Mr.Kot28 декабря 2018
    0

    @veronikamailad, много знаете подобных случаев? Нет, не так поставим вопрос. Каких случаев знаете больше, случаев удаления данных пользователя облачным оператором или случаев потери данных из-за сбоев железа, электропитания?

    veronikamailad avatar
    veronikamailad28 декабря 2018
    0

    @Mr.Kot, невосполнимых? Облако вне конкуренции – так как данные удаляются, в 99% случаях, преднамеренно. Данные с лояльного оборудования в тех же 99% случаях восстановимы т.к. есть бэкап и не один и не в одном месте.
    Из личного – потеря данных в двух разных облаках. Не фатально, был локальный бэкап, но доверие к чужим облакам отбило напрочь.

    Victor S avatar
    Victor S23 января 2019
    0

    @veronikamailad, без пруфов, названий облаков и подробностей звучит как бред

    serj007 avatar
    serj00727 декабря 2018
    0

    @tov.Polkovnik, ssd вам в помощь! Только берите фирменный

    tov.Polkovnik avatar
    tov.Polkovnik27 декабря 2018
    0

    @serj007, простите, а причем тут SSD, если у него шанс накрыться безвозвратно в разы выше, чем у HDD? С HDD почти в любом случае можно восстановить данные, а с SSD почти ни в каком – отказ контроллера диска и можете махать ему ручкой.

    jBo avatar
    jBo27 декабря 2018
    0

    @Дмитрий Скворцов, у меня на малине служба owncloud отваливалась под нагрузкой :( пришлось отказаться от данного решения. Купил Qnap D2 Pro. А на малине Homebridge замутил «с бд и ш»(с) :)

    Войди на сайт, чтобы ответить
    Ответить
Помни о правилах — если начал оффтопить, то не удивляйся потом.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.