- Как сделать своё облачное хранилище файлов. И не платить за него
- Предварительная подготовка
- Накатываем Linux
- Покупаем «белый» IP
- Пробрасываем порты
- Настраиваем сервер на базе Nextcloud
- Краткая настройка Nexctloud
- Владимир Кузин
- Экономим до 60% на продуктах и алкоголе перед Новым годом
- Москва приятная, предновогодняя
- 👀 Читайте также . Всё по теме
- Как активировать сервис Apple Fitness+ в России
- Появились фото чехлов для iPhone 12 в 7 новых цветах
- Apple потратит 200 миллионов долларов на восстановление лесов для борьбы с изменением климата
- Google Earth показал, как глобальное потепление изменило климат Земли за 36 лет
- Представлен дрон DJI Air 2S: запись видео 5К, полчаса без зарядки
- Шведский звук с душой. Обзор беспроводных наушников ETT, FEM и NIO от Sudio из Скандинавии
- Обзор стратегического гаджета с поликарбонатной броней Acer Enduro N7. Для строителей, военных и спецслужб
- Виниловый проигрыватель Lenco LS-40: то, что нужно меломану. Культовый бренд и стоит адекватно
- 🙈 Комментарии 72
- Создаем свое облачное хранилище с Syncthing
- Устанавливаем облачное хранилище Syncthing
- Настройка облачного хранилища Syncthing
- Создаем папки на сервере Syncthing
- Синхронизация устройств
Как сделать своё облачное хранилище файлов. И не платить за него
Месяц назад я рассказывал о препарировании старенького 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 необходимо ввести следующую строчку:
Затем указать пароль администратора в системе Linux (на нашем сервер).
Вводим следующую команду:
Затем устанавливаем сервер MariaDB:
su apt install mariadb-server -y
Дожидаемся загрузки и установки всех пакетов.
Теперь проверим статус установленного сервера:
sudo systemctl status mariadb
Видим статус active, значит все в порядке.
Чтобы выйти нажимаем Q. Продолжаем настройку.
Шаг 2. Проверяем версию MySQL, указав следующую команду:
Теперь настроим систему управления базами данных MySQL под работу сервера Nextcloud. Вводим:
На запрос пароля введите либо ваш пароль администратора, либо просто нажмите 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 ‘ПРИДУМАТЬ_ПАРОЛЬ’;
Готово. База данных 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. Вводим:
Теперь приступаем к загрузке Nextcloud. Меняем директорию:
Жмем Enter. Ждем окончания загрузки. Вводим:
Раскрываем список файлов:
Перемещаем Nextcloud в «правильную» папку:
Все, Nexctloud перемещен в корневую директорию нашего HTTP-сервера. Вводим еще одну команду:
su chown -R www-data: /var/www/nextcloud
И редактируем файл конфига Apache:
su nan /etc/apache2/conf-available/nextcloud.conf
Содержимое данного фала должно быть следующим:
Alias /nextcloud «/var/www/nexctloud/»
Options +FollowSymlinks
AllowOverride All
SetEnv HOME /var/www/nexctloud
SetEnv HTTP_HOME /var/www/nextcloud
Если подобного текста нет — копируем и вставляем его в файл конфига и нажимаем 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. И главное, вы знаете, что ваши файлы всегда доступны только вам и вашим близким.
Владимир Кузин
DIY-техноман. Уверен, что все можно сделать своими руками. Коллайдер не в счет.
Экономим до 60% на продуктах и алкоголе перед Новым годом
Москва приятная, предновогодняя
👀 Читайте также . Всё по теме
Как активировать сервис Apple Fitness+ в России
Появились фото чехлов для iPhone 12 в 7 новых цветах
Apple потратит 200 миллионов долларов на восстановление лесов для борьбы с изменением климата
Google Earth показал, как глобальное потепление изменило климат Земли за 36 лет
Представлен дрон DJI Air 2S: запись видео 5К, полчаса без зарядки
Шведский звук с душой. Обзор беспроводных наушников ETT, FEM и NIO от Sudio из Скандинавии
Обзор стратегического гаджета с поликарбонатной броней Acer Enduro N7. Для строителей, военных и спецслужб
Виниловый проигрыватель Lenco LS-40: то, что нужно меломану. Культовый бренд и стоит адекватно
🙈 Комментарии 72
Заголовок статьи не правда
@sdix , почему же?
@tov.Polkovnik , 40 руб за IP все-таки платить, эх….
@Владимир Кузин , потому и уточняю: у меня айпи изначально белый без доплаты.
@tov.Polkovnik , что за выражение такое «белый ip»?! С хренов он белый? Бывают других цветов? Красный там, может фиолетовый? Я бы взял именно такой… Или это из сериалов про хацкеров взламывающих пентагон?
@DastarD , устоявшееся выражение. Идиома, если хотите. Что вам не нравится? Хотите, называйте его выделенным оператором вешним IP-адресом, доступным из глобальной сети, но свои предъявы засуньте подальше.
@DastarD , 😀 😀 😀
А Вы в автомастерской не допытывались с хренов-то у них ход холостой, есть ли у него невеста и когда он женится?
Белый IP – это так называемый, “выделенный”, “статический”, “внешний” IP. Уникальный на весь интернет адрес, который находится в предназначенном для таких целей диапазоне адресов, присваивается лично Вашему каналу, и любые Ваши действия в глобальной сети происходят “от имени” этого IP. Он виден любому устройству/ресурсу, к которому вы обращаетесь. По нему Вас идентифицируют.
Распределение таких IP согласовывается централизовано по планете и они не повторяются. С любой точки Земли, обратившись к этому IP адресу, Вы попадете именно в свою сеть.
Не белый IP, называют “внутренним” или “динамическим”. Это IP, который Вам присваивает провайдер в своей внутренней сети, только для своих внутренних коммуникаций. Когда Вы обращаетесь к сайту, ваш запрос попадает сначала к провайдеру, там у запроса меняется IP, на внешний, от провайдера и после этого он (запрос) уходит “в мир” с IP-адресом провайдера. Теоретически, внутренний IP может быть вообще какой-угодно (в рамках правил сетевого протокола). Хоть 1.2.3.4 Но там тоже есть свои диапазоны, которыми по общему соглашению пользуются для внутренних IP, чтобы не пересекаться с внешними.
Попасть на внутренний IP из другой сети в интернете можно только через внешний IP провайдера. При чем на оборудовании провайдера специально еще нужно настроить возможность такого соединения.
@tr1GGr , белый ip может быть и динамикой, и статикой.
а то, что вы расписали как “не белый, динамический” – это серый ip, который за NAT-ом провайдера 😉
Создаем свое облачное хранилище с Syncthing
Если вам необходимо облако, вы можете его арендовать, например Dropbox. Но, проще и выгодней поднять свой собственный сервер под управлением Syncthing. Из достоинств своего облака можно выделить неограниченное дисковое пространство, относительная бесплатность. Так как вам не придется каждый месяц платить за облачное хранилище, а собрать сервер можно за копейки, а то и вовсе пустить под сервер свой старый компьютер. Syncthing шифрует передаваемые данные, а это значит, что все ваши данный останутся в безопасности. Так же вы сможете подключать к серверу под управлением Syncthing устройства на Android, Windows и Linux. Что в свою очередь весьма удобно. Особенно, если вам необходимо облачное хранилище например в компании, да и в домашних условиях такая роскошь отнюдь не лишена смысла. Из достоинств Syncthing можно выделить конфиденциальность, шифрование, открытый программный код, простота. Весь процесс настройки можно осуществить при помощи веб-интерфейса.
Устанавливаем облачное хранилище Syncthing
Устанавливать мы будем на сервер под управлением Debian / Ubuntu. Но, для начала нам понадобится инструмент под названием “curl”, далее необходимо скачать и добавить в нашу систему GPG ключ, делается это командами:
sudo apt install curl
curl -s https://syncthing.net/release-key.txt | sudo apt-key add —
Теперь подключаем репозиторий:
echo «deb http://apt.syncthing.net/ syncthing release» | sudo tee /etc/apt/sources.list.d/syncthing-release.list
После чего устанавливаем Syncthing:
sudo apt-get update
sudo apt-get install syncthing
Настройка облачного хранилища Syncthing
С настройкой все достаточно просто, запускаем Syncthing, это можно сделать как из терминала, так и используя иконки запуска, которые вы найдете в установленных приложениях. Иконка Start syncthing запустит syncthing, а Syncthing Web Ui запустит браузер с нужным нам ip адресом для настройки syncthing. Что бы запустить через терминал, достаточно набрать в терминале название “syncthing”
P.S. если же вы устанавливаете syncthing на сервер без графического окружения, запустить syncthing можно выполнив команды:
sudo systemctl enable syncthing @user .service
sudo systemctl start syncthing @user .service
Где “ user ” необходимо заменить на пользователя, который у вас создан в системе, либо, создать нового пользователя, который будет запускать syncthing.
Далее идем в браузер, откуда мы и будем производить настройки syncthing. В браузере вбиваем адрес:
P.S. если вы устанавливаете на сервер без графического интерфейса, то IP адрес можно изменить отредактировав конфигурационный файл
При первом запуске syncthing вас спросят, отсылать ли зашифрованные отчеты разработчикам или нет, тут вы уже сами принимаете решения. Теперь настроим язык интерфейса, для этого нажимаем на соответствующую кнопку и выбираем из выпадающего списка нужный нам язык:
Далее переходим к пункту “Действия” в правом верхнем углу, затем выбираем “Настройки”. В данном меню вы можете задать имя вашего сервера, у меня оно “Syncthing”, далее переходим к пункту настройки расположения папок. По умолчанию оно в домашней директории пользователя и обозначено тильдой “
”. При необходимости вы можете его изменить:
Переходим к вкладке “Интерфейс”, тут необходимо первым делом задать пароль для пользователя к интерфейсу “Syncthing”. После чего можно изменить ip адрес для веб интерфейса, а так же включить “https” и выбрать тему оформления, эти пункты уже на ваше усмотрения:
Переходим к пункту “Подключения”, в графе “Адрес протокола синхронизации” можно вписать ip адрес вашего сервера, можно вписать как локальный, так и внешний ip адрес, если у вас имеется статика. По умолчанию используется tcp://0.0.0.0 и порт 22000, можно все оставить по умолчанию. Тут же можно выставить ограничения по скорости, если имеется такая необходимость:
Создаем папки на сервере Syncthing
Про остальные пункты настроек думаю не имеет смыла писать. Сохраняем внесенные изменения в “Syncthing” нажав на соответственную кнопку и двигаемся дальше. Переходим к созданию папок, по умолчанию уже существует папка, при необходимости ее можно удалить:
Для удаления данной папки нажимаем кнопку редактировать, а затем в нижнем левом углу выбираем кнопку удалить, после чего необходимо подтвердить удаления данной папки:
Для создания папок нажимаем на кнопку “Добавить папку” на главной странице:
В открывшемся окне задаем имя для нашей папки, при необходимости можно изменить путь к папке, которую вы создаете, а так же ограничить доступ к этой папке для конкретных устройств перейдя к пункту “Предоставление доступа”. Когда все настроите, нажимаем на кнопку сохранить:
Синхронизация устройств
Для мобильных устройств клиент Syncthing вы можете скачать как с Google Play, так и с F-Droid, для Windows переходим на github и качаем от туда exe файл, если же не ходите устанавливать, можно скачать Portable версию. Для Linux же можно так же скачать AppImage версию GTK приложения. Для синхронизации устройств нажимаем на клиенте “Действия” далее “Показать ID”, копируем ID устройства: