Месяц назад я рассказывал о препарировании старенького 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 комментариев
Форум →Заголовок статьи не правда
@sdix, почему же?
@tov.Polkovnik, 40 руб за IP все-таки платить, эх….
@Владимир Кузин, потому и уточняю: у меня айпи изначально белый без доплаты.
@tov.Polkovnik, что за выражение такое «белый ip»?! С хренов он белый? Бывают других цветов? Красный там, может фиолетовый? Я бы взял именно такой… Или это из сериалов про хацкеров взламывающих пентагон?
@DastarD, устоявшееся выражение. Идиома, если хотите. Что вам не нравится? Хотите, называйте его выделенным оператором вешним IP-адресом, доступным из глобальной сети, но свои предъявы засуньте подальше.
@DastarD, :D :D :D
А Вы в автомастерской не допытывались с хренов-то у них ход холостой, есть ли у него невеста и когда он женится?
Белый IP – это так называемый, “выделенный”, “статический”, “внешний” IP. Уникальный на весь интернет адрес, который находится в предназначенном для таких целей диапазоне адресов, присваивается лично Вашему каналу, и любые Ваши действия в глобальной сети происходят “от имени” этого IP. Он виден любому устройству/ресурсу, к которому вы обращаетесь. По нему Вас идентифицируют.
Распределение таких IP согласовывается централизовано по планете и они не повторяются. С любой точки Земли, обратившись к этому IP адресу, Вы попадете именно в свою сеть.
Не белый IP, называют “внутренним” или “динамическим”. Это IP, который Вам присваивает провайдер в своей внутренней сети, только для своих внутренних коммуникаций. Когда Вы обращаетесь к сайту, ваш запрос попадает сначала к провайдеру, там у запроса меняется IP, на внешний, от провайдера и после этого он (запрос) уходит “в мир” с IP-адресом провайдера. Теоретически, внутренний IP может быть вообще какой-угодно (в рамках правил сетевого протокола). Хоть 1.2.3.4 Но там тоже есть свои диапазоны, которыми по общему соглашению пользуются для внутренних IP, чтобы не пересекаться с внешними.
Попасть на внутренний IP из другой сети в интернете можно только через внешний IP провайдера. При чем на оборудовании провайдера специально еще нужно настроить возможность такого соединения.
@tr1GGr, белый ip может быть и динамикой, и статикой.
а то, что вы расписали как “не белый, динамический” – это серый ip, который за NAT-ом провайдера ;)
@tov.Polkovnik, потому что не учтена стоимость содержания этого всего и при этом не обеспечивается тот же уровень отказоустойчивости.
@EmoCoder, 400 Вт света при потреблении в 20-30 Вт (это для Mac mini, не говорю об одноплатных компах) — не смешите.
@Владимир Кузин, электричество тут — о малое. В первую очередь потраченное время и амортизация. Я не говорю, что такой вариант никому не подходит. Просто это далеко не замена облачных сервисов для всех.
@EmoCoder, идея то правильная. Описанная реализация, да хилая, но тут уж каждый сам мастерит. Главное и самое бесценное – твои данные физически находятся у тебя, а не у неких неизвестных ублюдков которые могут сделать с ними все что им взбредёт в голову.
@veronikamailad, это не гарантирует безопасность! Тем более если у вас есть что-то ценное…. У моего брата с такого сервера всю бухгалтерию увили и пришлось платить 10 биткоинов
@serj007, если бы были соблюдены элементарные нормы безопасности ( скрытый фактический ip сервера, шифрованный массив, бэкап ), то все было бы цело. Или … 10 битками вы бы уже не отделались. 8(=)
@EmoCoder, щито? Отказоустойчивость – зеркальный рейд, электричество – вопрос вообще вне обсуждения. Ещё какое обслуживание? С нуля это можно сделать не дороже, чем за 10к и сразу на пару терабайт, что приблизительно равняется стоимости нормального облака с той же емкостью за год.
Короче: то, о чем вы говорите, ну просто смешно.
@tov.Polkovnik, потому что – это не облачное и не хранилище. Это безоблочное хоронилище. Ни резервирования ни бэкапов…
@baxtep2, формально – это все же облачное хранилище, просто с никакой отказоустойчивостью.
@tov.Polkovnik, что вы называете облаком? Это просто комп доступный по сети Интернет.
Накатить оунклауд много ума не надо, но если чего слетит или откажется работать после обновления, то без нормального умения админить линуксы не обойтись. Это перевешивает почти все удобства.
Покупаешь таймкапсулу на 3ТБ, запускаешь, настраиваешь удалённый доступ (уже не помню как делается, по-моему ставишь галочку в настройках), заказываешь белый ip адрес. Всё.
Есть минус. Винт постоянно норовит уйти в режим ожидания, а возвращается из него секунд пять.
Synology или Qnap покупаешь и все
Synology и все, и недорого)
@Bigbox1981, собственно на авито не 2-х дисковые серваки рублей за 10. И как ниже народ писал. Никаких белых Ip все через квикконнект. А самое главное человеческие клиенты для работы с данной техникой на IOS. Одна из постоянно используемых фич Авто копирование фотографий на сервак когда приходишь домой. Сам сливает фото за день.
Главное тут Mac mini а облако так приплели, оно хомякам не по зубам .
Малина с системой на 1тб хдд, белый адрес, клиент Remite File manager на всех айфонах семьи и вуаля, свое облако для всех членов семьи. Поехали в отпуск – все скидывают контент в папку отпуска, дома через ac роутер быстро все чистишь с ноута или компа и гуд) от приложения Фото пришлось отказаться, его невозможно вести в срезе семьи. Теперь все лежит по папочкам файлами, что оказалось тоже удобной штукой)
@Дмитрий Скворцов, Шикарное решение, Дмитрий! Тоже присмотрюсь на будущее.
@Дмитрий Скворцов, что такое “малина”?)
@sottedsailor, одноплатный компьютер Raspberry Pi
@Дмитрий Скворцов, что будете делать, когда ХД накроется? Я к тому, что лучше зеркальный рейд мутить, желательно с хот подключением.
@tov.Polkovnik, эт да, приходится периодически делать копию…:( зато все примитивно и просто, точек отказа нет)
@Дмитрий Скворцов, Если честно, вся эта Ваша система состоит из сплошных точек отказа :)
в Вашей системе:
1) один HDD
2) одна малина, считаем один контроллер, который также может “накрыться ландышем” (хоть это и наименее вероятно. но возможно)
3) один блок питания, который традиционно считается расходником.
4) один подвод питания (электричество в доме вырубили?)
5) подозреваю, что один канал Интернет с одним “белым” IP адресом
Не умаляя достоинства решения “стоимость”, по всем остальным критериям данное решение – скопище точек отказа. В отличие, как раз, от публичных облачных решений, где нет ни одной из перечисленных мной точек отказа и по всем перечисленным мной пунктам имеется redundancy.
@Mr.Kot, за исключением возможности обнуления массива пользователя. Без предупреждения, объяснений и каких либо юридических последствий. Просто потому что владельцу/работнику облака так захотелось.
@veronikamailad, много знаете подобных случаев? Нет, не так поставим вопрос. Каких случаев знаете больше, случаев удаления данных пользователя облачным оператором или случаев потери данных из-за сбоев железа, электропитания?
@Mr.Kot, невосполнимых? Облако вне конкуренции – так как данные удаляются, в 99% случаях, преднамеренно. Данные с лояльного оборудования в тех же 99% случаях восстановимы т.к. есть бэкап и не один и не в одном месте.
Из личного – потеря данных в двух разных облаках. Не фатально, был локальный бэкап, но доверие к чужим облакам отбило напрочь.
@veronikamailad, без пруфов, названий облаков и подробностей звучит как бред
@tov.Polkovnik, ssd вам в помощь! Только берите фирменный
@serj007, простите, а причем тут SSD, если у него шанс накрыться безвозвратно в разы выше, чем у HDD? С HDD почти в любом случае можно восстановить данные, а с SSD почти ни в каком – отказ контроллера диска и можете махать ему ручкой.
@Дмитрий Скворцов, у меня на малине служба owncloud отваливалась под нагрузкой :( пришлось отказаться от данного решения. Купил Qnap D2 Pro. А на малине Homebridge замутил «с бд и ш»(с) :)
Это если есть старый ноут или комп. А так, проще купить nas от WD, например, и настроить его на удаленный доступ. Это будет куда удобнее, плюс не нужно обладать знаниями всевозможных настроек.
ну что ж..как говорится “ведро воды и йух туды…охапка дров и плов готов”..
Как минимум – это совершенно не безопасно. Выставлять домашний сервер наружу в интернет – хуже не придумать идиотизма.
Для такого кейса лучше использовать как минимум свежую (15ю) версию, в которой есть “forced 2FA”
Ну чисто за настойчивость – 5+. В остальном….. )
MariaDB – не лучший выбор для нагруженного Nextcloud, лучше Postgres использовать.
И как минимум – использовать redis для файловых блокировок, иначе может быть неприятно.
Поднять Nextcloud в докере в разы проще.
Сижу на NC начиная с 11 версии которую поднимал еще в jail’е FreeNAS. Текущая – 15.0.0, докер образ собираю на алпине и nginx :-))
@Maaster, nextcloud вообще не лучший выбор для стареньких машин.
Для них есть SeaFile. Мелкий , шустрый, клиенты есть на все OS
В чем смысл белого ип?
Есть Xpenology. Прям как Hackintosh.
После совета включить DMZ статью можно не читать
домашнее облако это конечно круто – тот же Synology или qNap, но даже не проблема отказоустойчивости дисков, а скорее проблема отказоустойчивости интернета, а так же доступность вашего белого русского IP за границей.
Было пару раз когда пинг из Парижа до моего домашнего белого IP был какой то нереально большой, а скорость не тянула даже фотки перекинуть, при чем в icloud или onedrive фотки улетали шустро.
Все дело в CDN – дома это не реализовать!
Задротство для немногих
Вопросы:
1. Надежность – винт накрывается, что дальше?
2. Доступность. У меня как-то иногда пропадает доступ и в самый нужный момент. То ли ПО, то ли инет домашний.
3. Скорость доступа. Тоже не особо радовала.
4. Безопасность. Кто это обеспечивает?
Делал на WD, не понравилось.
Пару раз в ответственный момент были недоступны нужные документы. После этого вернулся на сервисы.
Дома в NAS – то что не нужно оперативно. Что требуется под рукой – в облаке.
P.s. Кстати – облако – распределенное хранение. В статье предлагается свой сервер – не облако.
@smbros, что называется “с языка снял”. Про облако.
Выход номер два купить синолоджи и не платить вообще за Белый айпи
@potatoonair, а как ты его с интернетом соединишь? Для этого и нужен белый ip
@Anton11, Служба QuickConnect позволяет клиентским приложениям подключаться к Synology NAS через Интернет без необходимости настройки правил переадресации портов.
@Anton11, через соединяющий сервер. Тимвьюер же работает у всех без белых IP.
@e-ch, не думаю, что кто-то захочет через свой сервер гнать столько трафика
@Anton11, тимвьюер же работает. Я еще не видел никого, кто бы его купил. Даже в конторах.
@e-ch, ну во первых я купил :) Во вторых я знаю как минимум 4 конторы, которые купили сразу на 20-50 ПК. Да и трафик там совсем не большой, а тут огромные файлы летят
@e-ch, какие-то не пуганные конторы, видимо.
Спасибо! Больше технических статей!
Писать себе в ЛС в ВК
Сделать своё облако, а то и несколько может даже любой обыватель и очень недорого. Достаточно в продуктовом купить нехитрый набор продуктов.
@Mr.Kot, я тебе больше скажу, адекватный человек денег закинет не за настройку этого добра, а облачному сервису! А в оставшееся время будет тр…..ть Малину, Арину и т.д. А вот это удел красноглазых и фанатов по….чить железо и ПО. Имхо конечно.
Synology купите и не страдайте гемором.
Лично мне последнее время хватает расширенного iCloud для бэкапа важных документов и доступа между устройствами. Плюс реально удобно синхронизация между разными маками происходит. Стоит на 200 ГБ как белый IP, доступ к месту дал на все ID семьи. Пока хватает. ИМХО, запариваться с личным серваком стоит, когда реально нужно много места, а не “чтоб было”. В ином случае облака удобнее.
статья для красноглазых … хотя нет, они и без статьи это сделают. а обычному пользователю это тока во вред. кто будет следить за обновлениями линуха и затыкать дыры ? никто.
как выше сказали есть готовые проверенные решения от кунап и подобных.
А если нужно поддержка live фото? Купил синоложи для плекса, купил 200гиг айклауда
Цветные IP, Debian, su su su
Для тех кто бы мог использовать эти шаги пользы ноль, для других один вред как мне кажется.
Ждём продолжение, могу подкинуть идеи:
– резервное копирование
– програмный RAID
– IPv6
@stralex, Да кому нах нужно это продолжение! Вам что заняться в жизни больше нечем? Ответ см. выше)))
@HannsPro, Бл%, это был сарказм с моей стороны, может такой же убогий как и сама статья )
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Как просматривать сохраненные пароли Safari в iPhone
Выключаем микрофон Mac во время печати на клавиатуре
Почему дублируются контакты на iPhone
Почему на iPhone данные из приложения не находятся через Spotlight
Легкий способ запретить iPhone выходить из приложения
Как установить бета-версию iOS 14.5 с разблокировкой iPhone через Apple Watch
Почему iPhone перестает заряжаться от компьютера через час
Почему Safari на iPhone неправильно отображает некоторые сайты