Pull to refresh

Домашний сервер GameDev разработчика. Где найти железо?

Level of difficultyEasy
Reading time4 min
Views8.9K

Всем привет, меня зовут Иван, я программист C++ в области GameDev'а и на момент написания статьи специализируюсь на Unreal Engine.

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

Сервер мечты студента
Сервер мечты студента

В начале осени 2023 года я задумался запустить дома сервер для различных нужд проектов (GitLab с CI/CD) и серверов для игр с друзьями (GameDev всё-таки)). Это моя первая статья из цикла процесса создания своего домашнего сервера, ну и первая статья на хабре.

Сегодня речь пойдёт о железе и OS для домашнего сервера, а точнее о том как я его выбирал и искал. В последующих статьях расскажу об установке софта и более подробном разборе отдельных решений для управления/администрирования

Требования к серверу

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

Судя по минимальному требованию в возможности запуска GitLab, по мощности могло подойти всё что угодно, начиная с одноплатника под управлением linux и возможностью подключения SSD в качестве основного хранилища и HDD для резервного копирования.

Если же пытаться войти в мир сервера того же Minecraft с модификациями для нескольких друзей, то судя по исследованию просторов интернета нужен был процессор с частотой 3 ГГц, с двумя ядрами, а также оперативной памяти больше 4 Гб.

Выбор железа

Тут я не буду перечислять всевозможные решения, это сделал до меня автор подробнейшего обзора. Автору повезло, что для его целей хватало Raspberry Pi и она у него уже была в наличии.

Я же вспомнил, как несколькими годами ранее баловался с Raspberry Pi 4 и надеялся увидеть такую за 5 тысяч рублей, однако цены подскочили до 15-20 т. р. в зависимости от конфигурации, плюс ещё SSD и HDD докупать. Такого одноплатника бы хватило бы для GitLab, но за такую цену, я хотел бы чего-то большего. В свою очередь профессиональные готовые сервера были мне не по карману, да и не было надобности в таких махинах. Поэтому выбор встал между ПК и неттопом, что в свою очередь пробудило во мне желание удовлетворить параметры ЦП с 3 ГГц и 8 Гб ОЗУ.

Неттоп можно было найти за 7-9 т. р., особенно б/у. Но процессоры в таких устройствах не проходили границу в 3 ГГц, да и расширить в случае необходимости практически невозможно. Полноценный же ПК при поиске на Авито мог мне обойтись в 10-15 т. р., а за 20-23 можно было собрать в DNS новенький с самой слабой видеокартой в качестве заглушки. В своё время в общежитии я видел и чуть более дешёвую сборку, но корпус был сделан из картонной коробки.

Но в этот момент мне повезло, в родном городе перестал быть нужен старый компьютер с i5 4го поколения как раз на 3 ГГц и 4 ядра, с ddr3 на 8 Гб, нормальной для 2014го видеокартой и двумя HDD, один из которых хрустел с 2006 года. Поэтому, подождав до отпуска и совместив приятную поезду к родственникам с полезным, была получена очень пыльная, но рабочая лошадка, а за 2 т. р. был куплен SSD но 512 Гб взамен хрустящему другу.

Рыба моей мечты прямиком из 2014го Уже после пылесоса
Рыба моей мечты прямиком из 2014го Уже после пылесоса

OS и доступ к серверу

В качестве OS я поставил последнюю LTS версию Ubuntu Server 22.04. Очевидно в этом нет ничего сложного об этом есть множество туториалов, например, этот. Главное, что у меня не было возможности одновременного подключения к монитору и интернету (роутер очень далеко от основного рабочего места), поэтому после установки важно было понимать, что ssh сработает без логина на самой машине, о чём не так уж просто найти информацию.

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

И казалось бы, вот тебе счастье, кинь сервер в кладовку к роутеру, подсоедини в LAN и в роутере задай статический локальный IP. Но как работать с этим с Windows и как можно подключиться не из локальной сети?

С первым вопросом всё просто доступ можно обеспечить по вышеупомянутому ssh через всем известный PuTTy, а чтобы иметь доступ к файлам для Windows есть SSHFS-Win Manager, таким образом вы сможете видеть любую папку на сервере, как раздел в проводнике Windows.

Второй вопрос хорошо разобран в статье, в случае если вам нужно будет подключаться с множества устройств, например, при хостинге сайтов. Однако на мой сервер будут подключаться не более 20 устройств (мой домашний и рабочий компьютер, друзья для игр и коллеги по проекту, о котором я обязательно напишу позже), поэтому я использую ZeroTier. Он позволяет создавать бесконечное количество виртуальных сетей и добавлять при бесплатном тарифе до 25 нод (устройств) на все сети суммарно, причём одно устройство подключённое к нескольким сетям всё ещё считается как одна нода. Установка заняла не более минуты, а в результате, я могу подключиться к сети с любого ПК без страха о том, что кто-то сможет постучаться на сервер без моего ведома.

Заключение

В этой статье я хотел собрать полезные источники для тех, кто собрался создать свой сервер и показать, что старой технике можно придать новую жизнь. Если бы у меня не завалялся дома ПК десятилетней давности я бы искал дальше б/у на Авито.

P.S.

В следующих статьях хотел бы рассказать о некоторых особенностях установки Gitlab и репозитория с проектом Unreal Engine, и о том, как я администрирую сервер при помощи телеграм бота. Также можно написать что-нибудь ближе к профилю UE5, так как документация от Epic Games заставляет желать лучшего.

Tags:
Hubs:
Total votes 16: ↑8 and ↓8+2
Comments12

Articles