..

Домашний сервер. Как я до него дошел и почему отказался от использования

Читать в Telegram

До перехода на macOS я то и дело метался между Windows и Linux, а для сборок iOS-приложений был базовый MacBook Air на M1. Сам PC на Ryzen 2700X, 32 гигабайта RAM, быстрый SSD и все такое - вообще не задумывался по поводу зависаний, все летало (и летает) как нужно.

Но, данный вариант был ok до того момента, когда на работе не появилась потребность в постоянном использовании Мака - вся инфраструктура в виде дополнительных сборочных конфигов была сделана только для macOS (на самом деле нет, ибо я какое-то время заводил это все на Ubuntu, пока она меня не подвела и Android-эмулятор не вывел из работоспособности всю ОС), поддержку Windows (Linux можно было завести, ранее про это и написано, но если была какая-то проблема - решай сам) завозить не хотели, да и судя по настрою коллег, всем было хорошо и на яблочной оси (компания раздавала всем рабочие прошки на M-процессорах, не нужно было тратиться. Я был со стороны аутстаффа, поэтому данная тема для меня была более важной). В конце концов до меня дошло, что для разработки на Flutter идеальнее (спорить не будем) macOS ничего нет - ты разрабатываешь сразу под все мобильные платформы, и не нужно метаться из комнаты в комнату за другим компьютером. Если есть нюансы с инфраструктурой на работе - у тебя уже есть macOS, ничего не нужно делать, чтобы все настроить.

Купил MacBook и встал вопрос - что делать с PC? Продавать не хотелось, давно хотел сделать домашний сервер (как минимум смотрел в сторону NAS, но почему бы не сделать еще что-то, помимо файлового хранилища). А тут, на самом деле, такой простор для полета фантазии, что можно месяцами варьировать конфигурации и менять то, что будет на сервере крутиться.

Первым делом начал смотреть, а на чем все это можно сделать. На одной из работ был Prometheus, это типа VirtualBox, только на уровне операционной системы (в плане того, что ты запускаешь OC - а у тебя там выбор других ОС). Из плюсов - все очень гибко настраивается, можно сделать кучу всего, разделить ресурсы так, как тебе хочется, и вдобавок идут дашборды с аналитикой. Минусы - этим всем нужно управлять, и для варианта медиа-сервер + локальный Git, слишком нагружено. Продержалась данная реализация около пары месяцев, и потом, ввиду всех минусов, я начал искать другое решение.

Другим решением стал вариант просто накатить Ubuntu Server и крутить все сервисы в контейнерах (Docker). Нет возни с кучей раздельных серверных ОС, все исходит из одного места, а запросы у меня не самые навороченные.

Что крутилось на сервере

1️⃣ Jellyfin - домашний медиа-сервер. Штука иногда лагучая, но в целом отличное решение для своего домашнего хаба с фильмами и сериалами.

2️⃣ Скрипт для бэкапа Git-репозиториев - раз в сутки выкачивались проекты и ветки к ним.

3️⃣ Выделенный GitHub Actions воркер для приватных проектов на GitHub’е - мощности есть, более быстрое выполнение CI/CD-пайплайнов.

4️⃣ Transmission Server - качалка всего и вся, в основном для Jellyfin.

Все это дело крутилось в Docker-контейнерах, работало почти всегда без сбоев. Меня не устраивал лишь 1 момент - мизерное потребление ресурсов, так как нагрузка в пиковые моменты была около 20%, все остальное время ресурсы простаивали. Придумывать новые варианты использования сервера я уже устал, и было принято решение скинуть старый MacBook Pro, который был для подкастов, и настроить PC для монтажа и записи видео. Очень странно получалось, что сервер стоит без дела, а MBP издает звуки самолета в надежде поскорее остудиться после конвертации выпуска в MP3.

Выводом, который можно сделать по этой теме будет “Если и делать личный сервер, то только исходя из соотношения потребности/производительности”. Часть вещей в итоге перевел в облако, часть была не нужна и придумывалась только ради того, чтобы забить неиспользуемые ресурсы. Так что лучше подумать, стоит ли игра свеч, если почти все ресурсы будут простаивать.