Делаем сервер своими руками
Несколько лет разрабатывали с другом проект, для которого в конечном итоге понадобился сервер. И мы задумались: как реализовать нашу идею?
Для начала позвонили местному интернет-провайдеру, чтобы узнать расценки стоимости размещения своего сервера в дата центре. Узнали, оказалось, что стоимость размещения зависит от количества юнитов, из которых состоит сервер. И для себе решили, что для нас идеальным вариантов будет размещения сервера размером в 1U.
Так как бюджет у нас был очень ограничен, мы не могли позволить себе покупку мощного сервера в форм-факторе 1U. У нас возникла идея, а почему бы его не сделать самим?
Сказано-сделано. Сбегали в ближайший компьютерный магазин и купили все комплектующий для обычного компьютера. Ну что ж, самое главное что оставалось сделать — это корпус и впихнуть в него все комплектующие.
Реализация
Для начала необходимо было определиться с размерами и железом, которое будет помещено в корпус. Стандартные размеры нетрудно найти в интернете, главной задачей было впихнуть комплектующие в высоту 43,7 мм., именно столько составляет величина 1U.
Ну… поехали! В нашем городе трудно быстро и дёшево купить серверную турбинку, поэтому куллер решили делать из того что было. Был куплен радиатор и доработан ножовкой по металлу, под нужную высоту.
Вид после распила.
Площадь радиатора была сокращена, поэтому пришлось делать куллер с более мощным потоком воздуха. Ну, и конечно, куда мы без испытаний…? Нужно было проверить интенсивность охлаждения средствами какими у нас были. И так, перед нами три участника: сдвоенный вентилятор, картонная турбинка и рядовой вентилятор для радиатора.
Продолжим!
Будем нагревать радиатор на конфорке, присоединив к нему термодатчик.
К сожалению результатов уже не помним, но эффективнее всего оказалась турбинка, со сдвоенным вентилятором, эту конструкцию и решили использовать, на всякий случай, добавив третий вентилятор для надёжности. Так же решено было использовать гофр для направленного забора потока воздуха от радиатора процессора.
Далее на очереди был обычный 500W ATX блок питания. Для начала мы совершили над ним акт вандализма, спилили радиаторы и отпаяли высокие детали.
Затем вернули всё на свои места, но под другим углом.
Корпус пришлось выкинуть и сварганить новый из нержавейки. Не переживайте, качество ни чуть ни хуже чем у наших собратьев китайцев, всё как надо, даже клеевой пистолет поучаствовал.
Ну и чтоб не ржавело, красим краской из автомобильного баллончика.
И теперь, когда основные части были готовы, осталось снять замеры и начертить чертёж по размерам 650х425. Важным аспектом было расположение элементов сервера таким образом, чтобы он придерживался стандартной системы охлаждения – спереди забор холодного воздуха, сзади отдача тёплого. Поэтому из-за конструкции ATX материнской платы, воздух с процессора пришлось отводить в сторону, а блок питания перенести в переднюю часть сервера. Начертили чертеж корпуса на бумаге.
Дело осталось за малым – изготовить сам корпус. К счастью, у нас нашлись хорошие знакомые со старым добрым листогибом и оцинковкой, которые любезно нам одолжили инструмент и помещение.
И понеслась… Если честно сначала всё выглядело ужасно, даже хотелось бросить эту затею, собственно вот:
В итоге получилась вот такая коробочка, больше похожая на вентиляцию чем на сервер…
На самом деле всё не так страшно, через дорогу был другой цех, где за небольшую сумму можно было покрыть полимером любого цвета. Покрасив корпус, мы скрыли все потёртости и царапины, придав ему приятный вид.
Осталось всё собрать.
С качеством сборки особо не старались, так как это было временное решение, до того как проект начнёт приносить прибыль. На фото видно, как местами применялся клеевой пистолет.
В итоге мы собрали вот такой необычный сервер. В нём есть ещё место под дополнительные жёсткие диски и одну плату расширения (нужно только докупить райзер).
Самое интересное в задней части сервера. Воздух в корпус заходит спереди, а выходит слева от материнской платы, так как подавать напрямую на процессор нам мешает оперативная память и слот питания материнской платы. Передних вентиляторов на один больше, чем слева, это сделано для того, чтобы воздух в пространство с материнской платой нагнетался быстрее чем забирался. В итоге мы охлаждаем радиатор процессора не разрежением, а постоянным потоком воздуха. Для более эффективного охлаждения процессора, склеили гофр соединяющий радиатор и три вентилятора. По бокам стоят менее производительные вентиляторы для оперативной памяти и транзисторов. Ну, и конечно, для чего же приклеена жёлтая полоска? (Кто разбирается в стиле, нас поймёт!) Шутим, конечно. Полоска нужна, чтобы выходящий поток тёплого воздуха с процессора не перебивал поток воздуха с блока питания, так как на блоке питания стоят менее оборотистые вентиляторы. А с данной полоской воздух выходит направленно в заднюю часть корпуса.
Для эффективного охлаждения передняя часть была выполнена в виде решётки, чтобы уменьшить сопротивление воздуха, сделанной и вырезанной из обычной сетки закрепили её с помощью того же клеевого пистолета.
Осталось приобрести салазки и можно устанавливать! Таким образом, мы получили достаточно дешёвый и мощный сервер на базе процессора Athlon II X4 3.0GHz и 8 гб. оперативной памяти.
Себестроимость собранного сервера составила 14 000 руб.
Домашний веб-сервер для чайников
Привет, Хабр! Относительно недавно после пары лет перерыва в айти, потраченных на изучение японского языка, мне пришлось срочно обновлять свои знания на работе. Ну знаете, искать возможности исполнить все хотелки начальника, как и положено эникею. Меня ждало много увлекательных открытий, но при этом, как водится, и немало боли и борьбы с непонятками. Docker, контейнеры, реверс DNS и реверс прокси, получение TLS сертификатов. В какой-то момент я наконец дошёл до удобного решения, которым я теперь хочу поделиться.
В своё время домашний сервер очень облегчил бы мне понимание Docker’а, да и удобство работы с ним неслабо бы повысил. Поэтому возникла идея написать эту статью, после прочтения которой любой человек даже с поверхностными знаниями в информационных технологиях сможет поставить себе постоянно доступный домашний сервер на базе Docker Swarm с удобной веб-мордой, простым получением TLS-сертификатов и Heroku-подобным функционалом (для чего будем использовать PaaS CapRover).
Статья, в общем-то, рассчитана на новичков, обладающих какими-то техническими знаниями — школьников старших классов, студентов и просто любителей — а потому вряд ли будет интересна серьёзным профессионалам.
Зачем оно нужно?
Ну как минимум потому что это круто, иметь домашний сервер! Да и настраивать всё это дело интересно. При этом он уже за месяца три отобьёт свою стоимость в сравнении с VPS’ом схожей конфигурации. Ну и наконец он просто радует глаз и миленький.
Что же до использования — иметь возможность развернуть в пару кликов дома Docker-контейнеры сразу в формате http://контейнер.мой.домен/ и в ещё один клик подключить к нему SSL неплохо упрощает жизнь. Сейчас всё больше и больше разнообразных приложений и сервисов переезжают в контейнеры и, если вы не любите лишний раз платить большим компаниям, иметь свои аналоги платных сервисов на домашнем сервере это очень удобно.
Ну а удобство для разработчиков и так понятно.
Подготовка
Поскольку мы хотим, чтобы наш домашний сервер был доступен из внешней сети, нужно сделать несколько приготовлений.
Port Forwarding
Проверьте наличие у вашего маршрутизатора (роутера) опции Fort forwarding/Port mapping/Перенаправление портов. Это не самый безопасный, но самый простой способ дать нашему серверу путь во внешний мир. Убедитесь что 80, 443 и 3000 порты у вас ничем не заняты — именно их вы будете прописывать IP адресу вашего сервера. Возможно в будущем, например, если вы захотите поднять почтовый сервер, вам придётся прописать дополнительные порты, но пока нужно только это.
Если проводить аналогию для понимания перенаправления портов, то представьте работу мамы в детстве. По умолчанию охранник туда не пустит, но стоит только сказать волшебную фразу «Я к маме», как строгий охранник уже пускает и говорит куда пройти. Вот и тут так же, с нашим NAT’ом роутера, только вместо «Я к маме» вы говорите порт, на что вас направляют куда надо.
Так же стоит убедиться, что у DHCP вашего роутера есть возможность зарезервировать выданный IP адрес за MAC. Скорее всего ваш сервер будет стоять включённым всё время и не просрочит свой выданный IP адрес, но подстраховаться никогда не бывает лишним. Если нельзя — выпишите машине статичный IP вне зоны выдачи адресов DHCP. Это сложнее и неудобнее, но тоже вариант (Кто-то даже скажет что так даже лучше сделать. Но я сейчас за простоту).
Нету этих опций? Возможно ещё не всё потеряно. Проверьте базу https://dd-wrt.com/support/router-database/ на наличие вашего роутера и есть ли тема по нему на 4pda. Если и там пусто. Ну, либо сворачивайте это руководство, либо пора купить новый роутер.
Домен
Конечно, ничто не мешает нам обращаться к нашему домашнему серверу и напрямую по IP адресу, но делать так не рекомендуется: и не особо безопасно, и запоминать IP адрес не просто, да и если у вас динамический, меняющийся каждый раз как вы заново подключаетесь к интернету, IP адрес, то запоминать его вообще бессмысленно. Ну и наконец, у нас много сервисов планируется, а чтобы к ним доступ был тупо по IP адресу, придётся их на разные порты навешивать. Оно вам надо?
Именно поэтому мы будем использовать домен.
Ну, знаете, ту самую штуку, которую вы вводите в адресной строке. В результате сможем давать сервисам поддомены для удобства и не страдать. Ну, например https://пароли.мой.домен/ для парольного сервиса или https://почта.мой.домен/ для почты. Удобно, в общем, запоминается. Делать это будет Ngnix под капотом нашего PaaS, при желании всегда можете разобраться в конкретике.
Рекомендую я, конечно, домен купить. Цены на домены в популярных зонах достаточно либеральные, платить раз в год, регистраторов куча. В плане выбора регистратора я ничего конкретного советовать не буду. Адекватнее всего ориентироваться по цене и отзывам. Разве что маленькое наблюдение: если регистратор требует миллиарды шекелей за такие вещи, как банальное управление DNS записями, то возможно это не очень хороший регистратор и следует посмотреть в другую сторону.
Впрочем если вы только пощупать пришли, то домен можно получить и бесплатно. Есть такой регистратор — Freenom, там можно бесплатно достать домен в зонах .tk, .ml, .ga, .cf или .gq. Правда как часто бывает с чем-то бесплатным, сайт глючный. Если на проверке доменов у вас всё время пишется, что домен занят, попробуйте поставить сразу полный путь. То есть вводите в проверочное поле не мой_домен, а сразу, скажем, мой_домен.tk.
Очевидно, что если что-то досталось бесплатно, то и потерять его легко — отзывы у Freenom в этом плане далеки от хороших. Так что если планируете что-то серьёзное, то лучше домен себе всё-таки купить у регистратора. Однако для маленького домашнего сервера потенциальная потеря домена не критична.
Cloudflare
Тут мы уже входим в пространство вкусовщины. Вам ничто не мешает использовать и редактор DNS записей вашего регистратора или любой другой сервис управления DNS записями домена. Тут, на хабре, вон вообще CloudFlare раком интернета недавно называли. Но с другой стороны, CloudFlare даже в базовой, бесплатной версии имеет достаточно много приятных фишек, которые ваш регистратор скорее всего не предоставляет. Тут и какая-никакая защита от DDoS, кеширование, расширенные возможности управления доступом и так далее и в том же духе. Плюс в одном из следующих пунктов, когда мы поднимем контейнер для DDNS, будет использоваться именно CloudFlare (впрочем настроить DDNS с другим провайдером вроде DuckDNS — задача достаточно тривиальная).
Правда многие фишки пройдут мимо нас, поскольку проксирование у CloudFlare на wildcard-записи (ну, это записи включающие всё пространство имён *.мой.домен) не работает (ну, за бесплатно). Однако ничего не мешает потом, уже для отдельных сервисов, сделать конкретную запись и пожать все плюшки платформы. Ну или ещё лучше, если у вас статический IP адрес, вообще без DDNS обойтись.
Платформа
Физический путь
Удобство физического пути очевидно — стоит отдельная машинка, не мешает основной работе, радует глаз.
Если спросить, что же использовать как платформу, наверняка многие ответят Малинку (то есть Raspberry Pi). На мой взгляд это не самый лучший выбор для данного случая.
Raspberry Pi отлично подходят для самодельных решений разнообразной направленности, но по соотношению цена/производительность не являются каким-либо лидером. И, хотя сейчас уже множество софта доступно под ARM системы, под x86 программы всё-таки чувствуют себя постабильнее.
Кто-то захочет переоборудовать старую машину или собрать на старых Xeon’ах себе компьютер для веб-сервера. И это тоже вариант, хотя по потреблению электроэнергии не оптимальный.
Я же советовал бы купить для данных целей недорогой (или не очень дешёвый, если вы хотите постоянно запускать «тяжёлые» задачи на вашем сервере) мини-пк (иначе называемый неттоп). Доступные варианты с 8 гигабайтами оперативной памяти, четырёхядерным Celeron и SSD на 128 гигабайт можно найти за 150-200 долларов и этого более чем хватит для домашних задач. При этом он будет компактным, тихим, удобным в размещении, достаточно приятно выглядящим и с низким TDP. Даже в самые дешёвые модели обычно можно доставить как минимум один, а порой и два 2,5 дюймовых диска, так что как файловую помойку его, в общем-то, тоже можно использовать. Хотя лучше превратить его в личное облако, а как файловый сервер использовать отдельное NAS-устройство — для отказоустойчивого хранения большого количества данных форм фактор мини-пк не слишком располагает.
Помимо этого, если вы «наиграетесь» и решите, что оно не ваше, такому компьютеру будет легко найти место. Например поставить обратно Windows и отдать маме/тёте Вале из третьего подъезда. Для офисной работы и использования браузера он подойдёт прекрасно.
А если вы за чуточку большую цену взяли мини-пк с несколькими сетевыми портами, то сможете превратить его в невероятно мощный и функциональный маршрутизатор, поставив сверху OpenWRT, PFsense, ClearOS или ещё какую-нибудь систему для роутеров. Ну и вообще альтернатив много, когда и если наиграетесь с предложенным мной вариантом.
Сразу, правда, надо учесть: шансы, что у такой машинки не будет работать Wi-Fi под линуксом, мягко говоря, не самые маленькие. Так что планируйте проводное соединение.
Заранее погуглите, на какую клавишу вызвать boot menu у вашей машинки. А образ для установки, если вы на Windows, лучше всего на флешку записывать программой Rufus.
Виртуальный путь
Если у вас есть просто живой интерес к тому, что и как настроить, определиться надо ли оно или не надо, то настраиваем виртуальную машину.
Тут стоит провести некоторое разграничение в понимании, поскольку дальше у нас будут ещё и контейнеры Docker. Внешне и по структуре они очень похожи, но вот по использованию неплохо так различаются.
Виртуальная машина — это именно то, как оно звучит — компьютер, которой на самом деле не существует, живущий внутри нашего. Её в какой-то мере можно сравнить с картонной коробкой. Её нужно где-то достать, развернуть, заполнить. Она стоит и занимает место, даже если не до конца заполнена. И залезть внутрь этой коробки иначе как сверху достаточно проблематично.
А контейнер — это как пакетик из магазина. Вроде и служит примерно той же цели, что и коробка, но внутрь что-то положить и достать проще, укладывать по-особому не нужно,места много не занимает, и выкинуть не жалко, и продырявить просто. Говоря же чуть более нормальным языком — контейнер это такая недо-виртуалка, которая ведёт себя скорее как процесс программы.
Конкретный гипервизор (ну, программа, где ваши виртуальные машины создаются и управляются) — на ваше усмотрение. Лучше, конечно, использовать гипервизор первого типа (они, как правило, быстрее, поскольку работают “под” операционной системой, а не “над” ней, как гипервизоры второго типа), но нашему серверу это не очень критично.
Внимание, любители всяких игруль, мобильных и не очень, на Windows — большая часть гипервизоров конфликтуют с эмуляторами Android для игр и с некоторыми античит решениями. Нормально только Bluestacks для Hyper-V работает, так что заранее выберите, что вам важнее.
VirtualBox
Для начала распишу для VirtualBox, который доступен на всех основных платформах, хотя и не отличается высокой скоростью.
Нажмите на кнопку New (Создать) для создания новой машины, и, ориентируясь по своей логике, задайте все настройки — если что, то потом всегда сможете поправить. Правда, меньше чем 2 гигабайта оперативной памяти лучше не ставить.
После создания машины войдите в её настройки. В разделе Storage (Носители) добавьте ваш образ к дисководу (синяя иконка), а в разделе Network (сеть) поменяйте тип подключения на Bridged Adapter (Сетевой мост) и выберите сетевую карту, по которой к вам приходят интернеты, после чего сохраните.
Hyper-V
Поскольку сам я в основном пользуюсь Windows, то предпочитаю использовать Hyper-V — встроенный в Pro версию системы гипервизор первого типа. Если вы пользователь Windows, то вам я тоже его советую — как и положено гипервизору первого типа, он весьма радует своей производительностью.
Чтобы использовать Hyper-V, активируйте его в Turn Windows Features on or off (Включение или отключение компонентов Windows) и перезагрузите компьютер. Вероятно, вам ещё придётся включить аппаратную виртуализацию в BIOS, если вы ещё не делали это. Также необходимо создать в Hyper-V manager (Диспетчер Hyper-V) сетевой интерфейс, ведущий во внешнюю сеть. Кликните справа на Virtual Switch Manager (Диспетчер виртуальных коммутаторов), выберите External (Внешний) и нажмите Create Virtual Switch (Создать виртуальный коммутатор). Далее в настройках External Network (Внешняя сеть) выберите сетевую карту, по которой к вам приходят интернеты, а потом сохраните.
После этого создайте новую машину в Hyper-V manager (но только не создавайте «быструю» машину, там всё не слава богу), а потом пройдите в её свойства и отключите Secure Boot (если машина 2-ого поколения). Остальные параметры по вкусу, но меньше 2 гигабайт оперативной памяти лучше не ставить. Ну и как сетевой интерфейс, очевидно, нужно поставить свежесозданный.
Установка и настройка системы
При выборе дистрибутива для установки у нас есть некоторый выбор (Но свериться с поддерживаемыми платформами на https://docs.docker.com/engine/install/ не помешает). Официально докер рекомендуется ставить на Ubuntu, я обычно предпочитаю Debian, но нам в целом не принципиально. Однако возможные подводные камни я распишу только для этих двух дистрибутивов.
И да, если можете, то лучше напрямую смотрите инструкции. А то информация в интернете имеет привычку устаревать и есть шанс, что к моменту, как вы это читаете, всё уже десять раз поменялось.
В случае с Ubuntu скачайте Ubuntu Server — на сервере графический интерфейс ни к чему, вы даже не будете подключать к нему монитор после изначальной установки. При установке важный момент — НЕ отмечайте Docker в качестве установки по умолчанию. Иначе он поставится как snap пакет, будет глючить, тупить и вообще, зачем вам лишние проблемы, не дружите со snap’ами, это плохая компания.
После установки системы копипастим по одной эти строчки (вы же уже подключились по SSH, правда ведь? Если нет, то чуть подальше будет инструкция) или вбиваем вручную:
sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
При установке Debian не надо отмечать web server, поскольку в качестве него у нас Nginx внутри контейнера Docker’а с нашим PaaS работать будет.
После установки системы копипастим эти строчки:
sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
В общем скачайте что вам нравится, запишите на флешку при физическом пути, подключите к виртуалке при виртуальном и давайте, устанавливайте по инструкциям.
Помимо того, чтобы вводить команды вручную, вы можете использовать Ansible или другие системы для развёртывания, но данное руководство их проигнорирует, поскольку ничего сложного мы не делаем. Просто знайте, что если вам потребуется однотипно настраивать несколько машин, то можно по ssh удобненько это делать через Ansible. Но ssh игнорировать всё же не стоит, ведь как минимум подключившись к своей машине по нему, вы сможете тупо копипастить все команды из руководств, а не вводить вручную.
Ansible это достаточно важный инструмент для Linux-админа и, если вы планируете сдавать или хотя бы просто учиться на сертификации от RedHat, то он вам понадобится. Ну так, на будущее.
Ssh клиентов великое множество, я обычно пользуюсь встроенным в Windows OpenSSH (хотя он встроен, но в старых версиях Windows 10 может быть по-умолчанию отключен. Включается в Turn Windows Features On and Off (Управление дополнительными компонентами)). Просто открываете PowerShell и пишите:
ssh логин_в_linux@IPшник_сервера
А после вводите пароль своего пользователя. Тут стоит отметить, что использовать ssh с паролем это не особо безопасно (но зато проще всего), и, если у вас будет желание с этим разобраться, то лучше настроить ssh ключ.
Систему мы настроили, но не спешите ставить CapRover. Сначала вернёмся к роутеру. Найдите в нём ваш сервер и зарезервируйте его IP адрес в DHCP. Ну или поменяйте его на что-нибудь приятное и зарезервируйте. У вас есть чувство прекрасного, я уверен. После этого пропишите перенаправление с 80, 443 и 3000 портов маршрутизатора на 80, 443 и 3000 порты нашего сервера.
Вот пример того, как оно выглядит в моём роутере TP-Link:
Теперь идём к домену. Войдите в CloudFlare или DNS редактор вашего регистратора и создайте следующую запись:
Тип: A
Хост: *.ваш.домен
Запись: указывает на ваш внешний IP адрес
Если вы не знаете как узнать ваш внешний IP адрес, то посмотрите в настройках интерфейса, роутера, где угодно. Ну или наберите в поисковике что-нибудь вроде «мой IP», если копаться не хочется.
Можете сразу не отходя от кассы создать токен, если планируете динамически обновлять DNS при изменении вашего IP адреса.
Для этого пройдите по ссылке https://dash.cloudflare.com/profile/api-tokens и создайте токен со следующими свойствами:
Zone — Zone Settings — Read
Zone — Zone — Read
Zone — DNS — Edit
Include — All zones
Сохраните длинный Cloudflare API токен, но далеко не убирайте.
Всё, теперь заходим на сервер и пишем волшебную команду, которая поднимает нашу систему для управления контейнерами:
docker run -p 80:80 -p 443:443 -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock -v /captain:/captain caprover/caprover
Если вы плохо знакомы с Docker’ом, то тут мы запускаем наш первый контейнер — небольшой PaaS CapRover. Помимо этого мы даём портам в контейнере путь на волю (-p 80:80 -p 443:443 -p 3000:3000), позволяем контейнеру иметь доступ к демону Docker на хост-машине (-v /var/run/docker.sock:/var/run/docker.sock) и делаем так, чтобы папка из контейнера хранила своё содержимое в папке на хосте (-v /captain:/captain). Если так не сделать, то при перезапуске контейнера всё содержимое: настроечные файлы и другие данные нашего контейнера, потеряются навсегда. Так что никогда не забывайте указывать команду -v при работе docker в консоли, чтобы потом не плакать у разбитого корыта. Ну а caprover/caprover — это образ на Docker Hub.
Подождите немного и зайдите либо по айпи адресу, либо по адресу вашего домена:3000 (например http://мой.домен:3000), введите пароль captain42 . После этого тут же введите в нижнее поле ваш домен и нажмите Update Domain. Можете также нажать на Enable HTTPS, но вот на Force HTTPS не надо нажимать — Cloudflare и так трафик у вас (если вы оставили рекомендуемые настройки) с http на https переводит. Конфликтов на этом поводе нам не надо.
Настала пора запустить наш первый контейнер внутри PaaS.
Перейдите в веб панели в раздел Apps, нажмите на One-Click Apps/Database, найдите CloudFlare DDNS. Это достаточно простой контейнер, весь смысл которого сводится к тому чтобы раз в пять минут проверять, изменился ли IP адрес сервера, и, если изменился, обновлять DNS запись на CloudFlare.
После того как вы нажали на него, вы увидите много опций для ввода. Вообще говоря, чтобы всё заработало нам достаточно просто указать наш сохранённый токен CloudFlare и задать какое-нибудь имя. Но давайте всё-таки разберёмся, что именно мы видим.
А видим мы опции ввода так называемых переменных окружения. Не всех правда, а только тех, которые указал автор конфигурационного файла для CapRover. Значения из этих переменных контейнер может достать и использовать в своих целях, проще говоря через них задаётся начальная конфигурация контейнера.
Так вот, задайте какое-нибудь имя, вставьте ранее сохранённый токен и нажмите Deploy. Контейнер заработал. Теперь можете делать что угодно!
Чуть сложнее
Этот контейнер был простым, без веб доступа, но что у тех, к которым мы будем иметь доступ? Да в общем всё так же, разве что ещё можно включить https, задать домен, указать HTTP порт контейнера и включить websocket. Попробуйте, это просто и интересно!
Использование
И вот наконец у нас всё стоит и работает.
Зачем оно вам? Ну, если вы до сих пор не знаете — придумайте. Для установки в один клик в CapRover доступно множество приложений для повседневного использования. Например менеджер паролей Vaultwarden. Торрент-клиент Qbittorrent. Сервер Minecraft. Боты для Discord. Вариантов много.
Я, например, держу стол для игры в DnD с друзьями Foundry VTT, веб-интерфейс для пробуждение от спячки моего домашнего компьютера (чтобы потом подключаться по RDP), свой маленький гит на базе Gitea, удобный фронтэнд для чтения Reddit’а libReddit, веб-архив для закладок и ещё кучу всякой всячины для тестов и изучения.
Ничто не мешает вам самому поэкспериментировать с контейнерами, которых в списке ещё нет, а если результат будет удовлетворительным — опубликовать свой конфиг на Github среди других приложений для установки в один клик.
В самом начале мы установили SSH, так что если вы захотите более тонкой настройки, подключите и тыкайтесь. Советую также зайти на SSH через VS Studio Code с установленным расширением Docker’а, и установить его же сразу там на ваш сервер. Теперь наблюдать, управлять и чистить мусор в контейнерах гораздо удобнее.
Что дальше?
Возможно, вам уже хватило, вы поняли что это не ваше и вообще. Тоже неплохой результат. Возможно, вы просто хотели домашний сервер и получили его — опять же, к результату мы пришли. Или же вы хотите большего — и это тоже прекрасный результат! Надо понимать, что хотя Docker Swarm уже несколько протух, для небольших нагрузок, вроде домашнего использования, он подходит на отлично. А если вам мало, то, разобравшись как и что тут работает, вы можете медленно начать своё движение к изучению kubernetes.
Что можно посоветовать конкретного? Ну, если Docker вам интересен и хочется в нём разобраться поглубже, то вводный цикл статей от Microsoft достаточно приятно и наглядно объясняет как и что оно.
Если хотите покрупнее брать — и в Hyper-V получше разобраться, и в контейнерах и чуточку затронуть кубер, то вот ещё у них есть неплохие материалы.
Не, не, вы не подумайте, я хоть и виндовый админ (ну хорошо-хорошо, эникей а не админ), но не сказать чтобы прям топлю за Microsoft, просто материалы у них бесплатные и достаточно толковые, на мой взгляд.
Коли от Microsoft тошнит — ищите курсы. В англоязычных интернетах с этим проще — идёшь на Udemy или Pluralsight и выбираешь курс по теме, где люди поменьше в комментах бугуртят на качество, и в бой. С русскоязычными курсами посложнее в выборе, но кто ищет — тот найдёт.
Ну и наконец если в целом вся эта тема с сервисами на своём домашнем сервере вам интересна, то вот отличный список selfhosted решений на все случаи жизни.
В общем, да пребудет с вами IT сила!
Создаем домашний сервер: теория и основы
Домашний сервер можно использовать для хранения файлов, бэкапов, управления умной техникой или в качестве медиасервера. Сегодня мы расскажем об особенностях таких серверов, их видах и ключевых характеристиках.
Собственный домашний сервер незаменим во множестве бытовых задач. Его можно использовать в качестве файлового хранилища, на собственном сервере можно организовать видеонаблюдение, если вы живете в частном доме, а также использовать его для резервного копирования. Поговорим более подробно о предназначении таких серверов и разберем основные характеристики машины.
Зачем нужен домашний сервер
Задача любого домашнего сервера так или иначе состоит в хранении файлов и данных, получить доступ к которым вы можете с любого устройства в локальной сети. Самый простой и понятный сценарий — обычное сетевое хранилище: вы храните все фильмы, музыку, дистрибутивы и другие данные на сервере и пользуетесь ими с любого домашнего компьютера, планшета или ноутбука.
Другой сценарий — создание медиасервера: это значит, что на сервере хранятся, например, фильмы и музыка, которые в любой момент можно воспроизвести на Smart TV или другом подходящем устройстве внутри сети. Здесь контент транслируется, используя протоколы HTTP или DLNA.
Домашний сервер можно также использовать для раздачи или загрузки торрентов. Это специфический сценарий, который тем не менее может быть для вас актуален. Как правило, большинство дистрибутивов уже имеют предустановленный торрент-клиент, однако это бывает не всегда, и тогда потребуется установить его вручную (приложение Transmission или подобное).
Если вы, например, живете в частном доме и хотите обеспечить его максимальную безопасность, с домашним сервером можно организовать видеонаблюдение. Данные с IP-камер могут сохраняться на сервере — важно лишь, чтобы он имел достаточный объем хранилища и нужную производительность. Конечно, существуют специальные компьютеры-видеорегистраторы, но они нужны для сложных систем, поэтому стоят дорого. Для пары-тройки камер свой сервер будет предпочтительнее и дешевле.
Сервер также можно использовать для резервного копирования данных с ваших устройств. Здесь важно, чтобы объемы хранилища были рассчитаны с запасом, и на дисках помещалась информация со всех ваших домашних устройств.
Какие характеристики важны
Если же мы говорим о характеристиках сервера, можно выделить две критически важных: объем хранилища и уровень шума. С хранилищем все понятно: его не бывает слишком много, от объемов дисков зависит, какое количество контента, файлов, документов и вообще данных вы сможете там разместить. Чем больше места, тем больше резервных копий вы сможете там хранить и тем выше качество фильмов и музыки вы себе позволите.
Второе — шум. Сервер — это не компьютер, который вы включаете по необходимости. Сервер — устройство, которое работает круглые сутки и, как правило, находится в жилом помещении. Поэтому от шума, который издает машина, напрямую зависит комфорт вашей жизни. Идеальным решением будет сервер с пассивным, а не с вентиляторным охлаждением и с крепким и массивным корпусом, который не будет передавать вибрации от работы жестких дисков. Если перейти на пассивное охлаждение невозможно, имеет смысл обновить вентиляторы, установив современные тихие и производительные модели.
Среди менее важных характеристик назовем энергопотребление: сегодня практически не производятся компьютеры, которые способны серьезно отразиться на счете за электричество в конце месяца. Аппетиты современных машин скромны, поэтому блока питания на 300 Вт будет вполне достаточно.
Какими бывают домашние серверы
Теперь несколько слов о том, какими бывают домашние серверы. Во-первых, вы можете приобрести микрокомпьютер на ARM-архитектуре. При понятных плюсах (невысокая цена, компактность, низкое потребление энергии) есть и весомые минусы: такие компьютеры обычно имеют низкую производительность, да и распространенность ARM-архитектуры пока не позволяет считать это решение удобным.
Как создать сервер Minecraft: 6 способов
Все мультиплеерные онлайн-игры работают на отдельных серверах. Бывает, что предлагаемые параметры пользователя не устраивают. В таких случаях оптимальным вариантом будет установка собственного сервера. Сегодня расскажем о том, какими способами можно создать сервер Minecraft.
Зачем создавать свой сервер в Майнкрафт
Создавая собственный сервер в Minecraft, пользователь получает практически безграничный контроль над игровым процессом. В нем можно создавать собственные правила, устанавливать какие-либо моды или фильтры, приглашать своих друзей в приват и так далее. Это не так сложно и дорого, как может показаться на первый взгляд. Но это не все преимущества, есть еще несколько:
- Гибкая настройка конфигураций.
- Собственная библиотека материалов, которую можно пополнять на свое усмотрение.
- Выбор любого удобного способа создания и обслуживания сервера.
- Возможность заработать на аренде. Этот вариант наиболее распространен, так как позволяет окупить все затраты, связанные с поддержкой игрового сервера.
- Возможность создать приватный сервер только для друзей.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Как создать внутренний сервер в Realms
Майнкрафт – очень крупная игра с огромной базой пользователей. Естественно, что разработчики игры Mojang AB совместно с Microsoft создали готовое решение для создания сервера – Realms. На данный момент оно доступно в виде ежемесячной подписки Realms Plus и стоит 7,99 долларов США. В дополнение еще прилагается куча пакетов текстур, скинов и мэшапов, облачное хранилище, пятьдесят миров Майнкрафт, а еще одновременное подключение к серверу до 10 игроков.
Плюсы : Так как это предложение от официальных разработчиков, пользователю не придется заботиться о защите, постоянно обновлять ПО или создавать резервные копии. Все эти заботы на себя возложили разработчики.
Минусы у подобного сервера тоже имеются. Пользоваться сервером Realms смогут только владельцы лицензионной версии игры. Устанавливать различные плагины и моды на такой сервер невозможно.
Вдобавок, на мобильных устройствах, консолях и Windows 10 предусмотрена своя версия Minecraft. На Mac и Linux придется устанавливать Minecraft: Java Edition с другой версией кода. Эти два варианта несовместимы друг с другом, разрабатываются по отдельности и имеют разный функционал. Не отличается только цена, но, если вы используете обе версии, переплачивать придется вдвойне.
Как создать сервер Minecraft на специализированном хостинге бесплатно
Помимо официальных разработчиков, серверные услуги в игре Minecraft предлагают и другие компании. Некоторые из них предоставляют услуги бесплатно. Взамен пользователю просто придется просматривать назойливые рекламные баннеры. Пример подобной компании, предоставляющей бесплатные серверы, – Aternos .
Одно из явных преимуществ в сравнении с предыдущим сервером – добавление модификаций и плагинов на усмотрение пользователя. Есть еще возможность подключения с неофициальных версий игры.
В числе минусов присутствует сложность в настройке подобного сервера. Придется вручную устанавливать разные параметры; моды и плагины подключаются тоже самостоятельно игроком. Компании, бывает, внедряют дополнительные услуги, за которые придется платить. Стабильность в работе таких серверов тоже не так часто встретишь, все же зависит от хостинга.
Именно данный сервер, Aternos, отличается еще и нестабильной скоростью работы. Также приходится постоянно ждать своей очереди, потому что желающих воспользоваться бесплатным сервером немало. Реклама в процессе будет выскакивать « на каждом шагу » .
По поводу компаний с полностью платными услугами – у каждой из них цена и функционал могут отличаться. Среднюю стоимость вычислить практически нереально, выбор остается за игроком. Например, Advens предоставляет серверные услуги по цене от 800 рублей, а игровой хостинг MyArena предоставляет тарифы с оплатой за слоты и ресурсы.
Как создать домашний сервер для Minecraft
Создать сервер Майнкрафт можно и самостоятельно на компьютере, без посредников. Как говорится, дешево и сердито. Единственным требованием в таком случае будет только статический IP-адрес. Для его приобретения необходимо обратиться к провайдеру. После остается только создать собственный одиночный мир и открыть к нему доступ. Друзьям останется только подключиться через установленный IP.
Плюсы – можно устанавливать любые моды и плагины, применять любые конфигурации, проводить детальную настройку мира.
Но чтобы все работало хорошо, компьютер должен обладать неслабыми характеристиками. Это скорее минус . Если начинка недостаточно мощная и производительная, создавать сервер на своем ПК будет не лучшей идеей. Любые операции будут сопровождаться постоянными багами и подтормаживанием.
Кроме того, важно иметь стабильное и высокоскоростное подключение к интернету. Рекомендуется иметь свободный пропускной канал для исключения лагов и высоких пингов. Но это все равно не гарантирует стабильную работу, скорость в итоге останется низкой. Подобный сервер полностью зависит от характеристик компьютера, домашнего интернета и электричества.
Как создать сервер Minecraft на Windows без модов
Прежде всего нужно скачать и установить последнюю версию Java на компьютер. Без него сервер не будет работать. Приложение бесплатное.
Далее потребуется купить и скачать Minecraft: Java Edition с официального сайта разработчика. После нужно установить игру и запустить ее.
Пользователь должен войти в свой аккаунт. Если его нет, тогда следует зарегистрироваться. Как только авторизация будет завершена, надо прогрузить мир игры и сразу же закрыть ее.
Потом нужно создать на компьютере папку, назвав ее Minecraft Server. Далее потребуется скачать сервер с официального сайта . Файл будет в формате server.jar. Его понадобится скопировать в созданную папку и запустить вот такой командой через командную строку:
java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.2.jar nogui
На момент написания статьи актуальна версия сервера 1.16.2.
Сразу после этого появятся дополнительные файлы. В их числе будет документ с названием eula.txt. Нужно открыть его в блокноте, найти в списке параметр eula=false, поменять значение на true и закрыть файл, сохранив изменения.
Примерно то же самое надо проделать с документом под названием server.properties. Открыть в блокноте, поменять в параметре online-mode=true значение, оно должно быть отмечено как false. Потом следует сохранение изменений и повторный запуск файла server.jar.
Далее откроется консоль, где будет показано состояние сервера. Пока эта самая консоль активна, сервер будет работать, и другие пользователи смогут без проблем к нему подключаться.
Как создать сервер Minecraft на Windows с модами
Сперва надо установить клиент Minecraft и добавить в него моды с помощью бесплатного приложения Forge . Его версия должна совпадать со скачанной версией игры. Устанавливать программу следует в ту же папку, в которой находится Майнкрафт.
Теперь надо создать на компьютере папку под названием Minecraft Forge Server. Далее запускается Forge (файл формата jar) и устанавливается сервер. В качестве расположения выбирается только что созданная папка.
Потом надо отредактировать через блокнот некоторые значения в файлах. Например, в eula.txt в строке eula=false нужно выставить значение true и сохранить изменения. Примерно то же следует проделать с документом server.properties, только там в параметре online-mode значение true меняется на false.
Затем необходимо перейти в mods, расположенную в папке с клиентом Minecraft. Можно воспользоваться окном «Выполнить» нажатием на клавиши Win + R, ввести в поле «Открыть» значение %appdata%\.minecraft\ и нажать на Enter. Все файлы модификаций в указанном файле понадобится отправить другим игрокам, вместе с которыми планируется использовать сервер. И внимание, каждый из них должен переместить моды в ту же папку на своем компьютере.
Последний этап настройки – эти самые файлы из папки mods перемещаются в другую с точно таким же названием, только расположенную в директории Minecraft Forge Server.
Снова запускаем клиент. Откроется консоль, и в ней будет отображаться состояние сервера. Теперь можно смело подключать новых игроков и приступать к игре.
Как создать сервер в Майнкрафт на Linux
Чтобы создать сервер Майнкрафт для игры с друзьями необходимо, чтобы были установлены дистрибутивы Linux с версиями не выше указанных – Ubuntu 18.04 и CentOS 7. Еще для установки сервера требуется наличие свежей версии Java. Проверить ее можно, дав в «Терминале» такую команду:
java -version
Если Java на компьютере не установлена, в той же командной строке можно дать запрос на установку. В Ubuntu это будет выглядеть так:
sudo apt-get update sudo apt-get install default-jdk
В CentOS команда должна быть введена вот так:
sudo yum update sudo yum install java -y
Как только Java будет скачан и инсталлирован, потребуется установить Screen, позволяющий одновременно работать с несколькими окнами в одной сессии. Вот так надо вводить команду на установку на Ubuntu:
sudo apt-get install screen
А вот для CentOS следует вводить запрос таким образом:
sudo yum install screen -y
Теперь надо осуществить подключение к серверу по SSH. Для входа можно использовать «Терминал». Для подключения нужно активировать такой запрос, правильно подставив, конечно же, указанные значения:
ssh имя_пользователя@ip_сервера
После активации команды будут запрошены логин и пароль.
Можно приступать к установке сервера Minecraft. Для начала создается отдельная папка, где будут храниться все конфигурационные файлы игры. Это необязательно, конечно, но для лучшей организации работы системы будет нелишним. Создать папку можно по команде:
mkdir minecraft
После успешного завершения процесса понадобится открыть папку, для этого вводим запрос такой формы:
cd minecraft
Еще перед скачиванием конфигурационных файлов надо будет установить wget. Вот как выглядит команда для такой операции на Ubuntu:
sudo apt-get install wget
А вот как должен выглядеть запрос на дистрибутиве CentOS:
sudo yum install wget -y
После завершения установки инструмент wget будет использован для загрузки файла свойств с сервера Minecraft. Дать при этом надо такой запрос:
wget https://launcher.mojang.com/v1/objects/c5f6fb23c3876461d46ec380421e42b289289789/server.jar
Теперь надо загрузить файл конфигурации с официального сайта игры. Обычно команда на установку и ссылка на скачивание даются на соответствующей странице .
Но на этом настройка не завершена. Надо еще подтвердить лицензионное соглашение через файл eula. Открываем лицензионное соглашение в текстовом редакторе, находим строку eula=false, меняем ее на eula=true и сохраняем изменения.
Сразу после этого можно приступать к запуску сервера. Чтобы он работал в фоновом режиме, потребуется активировать Screen вот такой командой:
screen -S "Minecraft server 1"
Пора запускать новый установленный сервер! Активируем вот такой запрос в «Терминале»:
java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.2.jar nogui
Уточняем, что для запуска сервера минимальное значение ОЗУ составляет 1024 МБ. Именно поэтому данная цифра была прописана после -Xmx и -Xms. А если вам этого мало, просто поменяйте значение на любое другое, оптимальное для вас.
Мощные игровые серверы для Minecraft от 3 руб./час
От 4 Гб ОЗУ, от 80 Гб на скоростном NVMe и стабильные 200 Мбит/сек
Запускаем Minecraft на VDS или выделенном сервере
Сделать сервер Майнкрафт можно через хостинг. Для этого потребуется сервер с достаточно мощным железом. В таком случае нужно будет скачать серверную версию Minecraft и удаленно установить ее на арендованное оборудование.
В хостинге Timeweb можно купить готовый выделенный сервер или самостоятельно подобрать конфигурацию. Правда, этот вариант не самый дешевый. Если у вас ограничен бюджет, можно подключить VDS сервер . Это отличный вариант для начинающих геймеров.
Из минусов – это не самый простой способ, для его реализации требуются определенные знания и навыки в администрировании. При работе могут возникать какие-либо трудности и нюансы, также вполне допустимо возникновение проблем в процессе запуска и настройки сервера.
Но результат определенно того стоит – пользователь сможет реализовать на таком сервере любые возможности для игры, использовать любые шаблоны, моды и защитное ПО. Такой сервер доступен круглосуточно и не зависит от того, включен ваш компьютер или нет. Такой сервер можно будет использовать для игры с друзьями или продавать.
О том, как создать сервер Minecraft на VDS на базе платформы CentOS 7, ранее было рассказано в другой статье.
Создание сервера Minecraft на VDS с Ubuntu 18.04
Чтобы создать сервер Майнкрафт для игры с другом потребуется заранее установить на сервер дистрибутив Ubuntu 18.04 и включить поддержку SSH. В хостинге Timeweb можно выбрать тариф с оптимальными параметрами и ценами. Если выяснится, что этих характеристик недостаточно, вы сможете выбрать тариф с большей производительностью.
Первым делом после подготовки сервера надо установить Java. Рекомендуется версия 8 OpenJDK для Java, в частности, headless JRE. Это минимальная версия, не имеющая поддержки графического интерфейса в приложении. Именно поэтому она отлично подходит для запуска приложений Java на сервере. Для скачивания и установки надо ввести следующую команду:
sudo apt install openjdk-8-jre-headless
Еще нужно будет скачать приложение Screen (о его назначении говорилось выше), для этого дается следующий запрос:
sudo apt install screen
После того как все необходимо ПО установлено, потребуется активировать брандмауэр для разрешения трафика на сервер Minecraft. В игре по умолчанию используется порт 25565. Чтобы внедрить это правило, запускается такая команда:
sudo ufw allow 25565
Наконец пришло время для скачивания и установки сервера Minecraft. Для этого используем утилиту wget. Открываем сайт разработчика для загрузки сервера , копируем ссылку на загрузку и вставляем ее после утилиты. Примерно так это будет выглядеть:
wget https://launcher.mojang.com/v1/objects/c5f6fb23c3876461d46ec380421e42b289789530/server.jar
Как только загрузка завершится, потребуется принять лицензионное соглашение через файл. Надо для этого открыть в текстовом редакторе nano файл eula.txt. Затем следует найти параметр eula=false и поменять значение на true. Теперь можно приступать к запуску файла jar. Открываем приложение screen и даем в нем вот такую команду:
java -Xmx1024M -Xms1024M -jar minecraft_server.1.16.2.jar nogui
В течение нескольких секунд будет совершена инициализация. Потом выйдут результаты, примерно вот такие:
Server thread/INFO: Done (32s)! For help, type "help"
Это значит, что подключение сервера завершилось.
Заключение
Сделать свой сервер Майнкрафт для игры с другом можно несколькими способами. У каждого из них есть свои плюсы и минусы, различные возможности и ограничения. Выбирать стоит исходя из характеристик установленного железа и собственных потребностей, будь то установка плагинов и модов. Ну и финансовых возможностей, разумеется.